- 切片slice
取指定索引范围的操作:[0:10:2]-->意为从第一个元素到第11个元素,元素之间隔2
l = list(range(100))
print(l[0:10:2])
# [0, 2, 4, 6, 8]
- 迭代iteration
给定一个list或tuple,通过for
循环来遍历,这个过程称为迭代
d = {'a' : 1, 'b' : 2, 'c' : 3}
for key in d:
print(key)
# a c b
for value in d.values():
print(value)
# 1 3 2
for k, v in d.items():
print(k, v)
# a 1 c 3 b 2
- 列表生成式list comprehensions
>>>[ x * x for x in range(1, 11) if x % 2 == 0]
[4, 16, 36, 64, 100]
写列表生成式时,把要生成的元素放在前面,后面跟for
循环,就可以把list
创造出来
- 生成器generator
在循环的过程中计算后续元素,两种方式生成:
- 列表生成式改写
[]-->()
g = (x * x for x in range(10))
for n in g:
print(n)
- 函数式
def fib(max):
n, a, b = 0, 0, 1
while n < max:
yield b
a, b = b, a + b
n = n + 1
return 'done'
- 迭代器iterator
凡是可作用于for
循环的对象都是Iterable
类型
可以被next()
函数调用并不断返回下一个值的对象称为Iterator
生成器都是Iterator
对象,但dict
、list
、str
虽然是Iterable
,却不是Iterator
,但可以使用iter()
函数来转化
网友评论