列表解析
x = [i for i in range(10)]
print(x)
生成器自动实现迭代器协议 - 实现了next()方法
y = (i for i in range(10))
print(y.__next__())
print(y.__next__())
print(y.__next__())
print(y.__next__())
print(y.__next__())
生成器函数
def test():
yield 1
yield 2
yield 3
yield 4
yield 5
re = test()
print(test())
print(re.__next__())
print(re.__next__())
生成器的好处
饺子必须一次性做好
def produce_jiaozi():
ret = []
for i in range(100):
ret.append('jiaozi',str(i))
return ret
做好一个出一个
def produce_jiaozi_generate():
for i in range(100):
yield 'jiaozi'+ str(i)
jiaozi_gen = produce_jiaozi_generate()
给第一个饺子
print(jiaozi_gen.__next__())
执行第一个yield后面的语句,并给第二个饺子
print(jiaozi_gen.__next__())