Yield用于返回数据,程序执行到 yield 之后,返回结果,记住当前状态,暂停执行。下次调用时,根据上次状态返回下一个结果,记住新状态,暂停执行。一般来说,就是调用一次,返回一个数据,再调用一次,返回下一个数据。是的,类似于我们日常生活中的挤牙膏。
以下是对您的详细介绍使用Yield方法。
定义生成器函数:
defgetData(): listData=(x**2forxinrange(6) forxinlistData: yieldx
获取生成器:
genData=getData()
输出生成器的数据:
print(genData.__next__())
继续输出生成器的数据:
print(next(genData))
遍历输出:
genData1=getData() data1: print(x)
代码执行结果如下:
0 1 0 1 4 9 16 25
总结:
迭代器只在下次调用时计算生成的值,而不是像列表一样提前生成所有值。这样,所有值都需要提前保存在列表中。当列表很大时,内存消耗很大。
上述就是Python中迭代器中Yield方法的所有用法,感兴趣的朋友可以多尝试使用~