生成器用来创建序列对象,可以迭代庞大的序列,且不需要在内存中创建和存储整个序列。
生成器是为迭代器生成数据的。
每次迭代生成器时,会记录上一次调用的位置,并且返回下一个值。
1、生成器推导式
见推导式。
2、生成器函数
和普通函数类似,但返回值使用yield语句声明。
def my_range(first=0,last=10,step=1): number=first while number<last: yield number number+=step >>>my_range <function my_range at 0x10193e268> >>>ranger=my_range(1,5) >>>ranger <generator object my_range at 0x101a0a168> >>>for x in ranger: ... print(x) 1 2 3 4