python生成器

1.什么是生成器?

python中,边生成边计算的形式,叫做生成器。

2.为什么要使用生成器

如果我们只需要有限的数据,却将所有的数据都放入列表当中,是非常消耗内存资源的。通过生成器,即可获得海量数据,又不必占用过多资源。

3.创建生成器

a.类似于列表推导式,将“[]”换成“()”即可。

eg:

generator = (i for i in range(5))

b.一个带有yield关键字的函数就是一个生成器:

eg:
def test():

for i in range(4):
yield i
g = test()

4.调用生成器的3种方式

a.使用next(next()或者g.__next__())

b.for循环取值

c.转化为列表list()   注意这种方式会将生成器剩下所有的值一起取出来

generator = (i for i in range(5))
print(generator.__next__())
print(next(generator))
for i in generator:
print(i)
break
print(list(generator))
结果

0
1
2
[3, 4]

生成器面试题

def add(a, b):
return a+b

def test():
for i in range(4):
yield i
g = test()
for n in [1, 10]:
g = (add(n, i) for i in g)
# n = 1
# g = (add(n,i) for i in (0,1,2,3))
# n = 10
# g = (add(n,i) for i in (add(n,i) for i in (0,1,2,3)))
# 结果:[20, 21, 22, 23]
 
posted @ 2021-04-15 11:20  飞天过海_小小虫  阅读(66)  评论(0)    收藏  举报