python生成器
- 当我们使用列表推导式的时候,我们会一次产生大量的元素,这个时候会占用很大的内容,此时,我们想希望用多少个元素就生产多少个元素;
- 在python中有一边循环一边计算的机制,我们称之为生成器generation;
- 如何创建生成器
方法一:(表达式 for 变量 in 旧列表 if 条件)
通过next()函数和__next__()方法获得元素
案例
得到一个0-10之内,分别和3相乘的数
g = (num * 3 for num in range(10))
print(next(g)) — 0
print(g.next()) — 3
方法二:通过函数来创建生成器
定义一个函数,函数中使用yield关键字
调用函数,用变量接收调用函数结果
得到的结果就是一个生成器
通过next()函数和__next__()方法获得元素
def fn():
n = 0
while True:
n += 1
yield n (相当于return n 并暂停)
g = fn()
print(next(g))
print(g.next)