一.生成器
一边循环一遍计算。每次仅仅处理一个迭代项,而不是整个序列。
比如一个列表有100万个元素,存储的是平方,但是现在我们只想读前几个元素,如果把整个列表读出来占用内存就太大了,故生成器。
使用方法:()括号
ps.列表表达式用的是 [ ]
a = (x*x for x in range(5))
print(a)
输出:<generator object <genexpr> at 0x7fe4f3639350>
那么如何显示出元素呢?
# 法1
a = (x*x for x in range(5)) # range(5) = 0,1,2,3,4
for num in a:
print(num)
# 法2 频繁调用next函数
print(next(a))
二.迭代器