1、列表生成式:
list = [x*x for x in range(1,88) if x%2==0]
4,16,36,。。。。。
后边可以加if条件过滤
2、生成器:
用法一-》
g = (x*x for x in range(1,88) if x%2==0)
直接 使用next(g)即可获取生成器生成的元素
在生成式上略作修改,将[]改成()即可
上述g是一个generator,属于Iterable对象
用法二-》
def fib(max):
n, a, b = 0, 0, 1
while n < max:
print(b)
a, b = b, a + b
n = n + 1
return 'done'
直接将方法中的print(b)改成yield b即可
3、迭代器:
生成器都是Iterator对象
list、dict、str等都是Iterable
把list、dict、str等变成Iterator可以使用iter()函数
Iterator表示数据流