一、生成器函数
生成器函数:
def gensquares(N):
for i in range(N):
yield i ** 2
此函数不断生成一系列数字的平方
for i in gensquares(5):
print(i,end=" : ")
>>>0 : 1 : 4 : 9 : 16 :
二、生成器表达式
生成器表达式同列表解析式几乎相同,只是将方括号改为了圆括号。并且列表解析式直接返回的是一个列表,而生成器解析式返回的是一个迭代器。
列表解析式:
>>>[x**2 for x in range(5)]
[0,1,4,9,16]
生成器表达式:
>>>(x**2 for x in range(5))
<generator object <genexpr> at 0x00000175EF39FC80>