一、列表

1.将列表当做堆栈使用(先进后出)
	例如:
	stack = [1, 2, 3, 4]
	追加:stack.append(5) ===>[1, 2, 3, 4, 5]
	去除栈顶元素:stack.pop() ==>[1, 2, 3, 4]

2.将列表当作队列使用(先进先出)
	例如:
	from collections import deque
	queue = deque(["aaa", "bbb", "ccc"])
	追加:queue.append('ddd')
	取出头:queue.popleft() ===>aaa
	
3.列表推导式
	例如: 
	(1)
	vec = [2, 4, 6]
	a = [3*x for x in vec]
	===>[6, 12, 18]
	
	(2)
	freshfruit = ['  banana', '  loganberry ', 'passion fruit  ']
	freshfruit = [weapon.strip() for weapon in freshfruit]
	===>['banana', 'loganberry', 'passion fruit']
	
	(3)
	vec = [2, 4, 6]
	vec = [3*x for x in vec if x > 3]
	===>[12, 18]

二、枚举

有时候,你可能想在一个列表上迭代,并且同时使用它的元素和元素的索引:

非Python用法

for i in range(len(documents)):
document = documents[i]
do_something(i, document)

也非Python用法

i = 0
for document in documents:
do_something(i, document)
i += 1 Python 惯用的解决方案是使用枚举( enumerate ),它会产生 (index, element) 元组:

for i, document in enumerate(documents):
do_something(i, document)

类似地,如果你只想要索引,则执行:

for i in range(len(documents)): do_something(i) # 非Python用法
for i, _ in enumerate(documents): do_something(i) # Python用法
我们会频繁用到枚举。

文章信息

张雪随笔
master
Homepage
Issues
Download

This Software is under the terms of The Unlicense.