小编典典

哪里最好在Python中使用yield?

python

我知道如何yield工作。我知道排列,认为只是数学上的简单。

但是什么yield才是真正的力量?我什么时候应该使用它?一个简单而好的例子更好。


阅读 111

收藏
2021-01-20

共1个答案

小编典典

yield 当您有一个返回序列的函数并且要遍历该序列,但是您不需要一次将所有值都存储在内存中时,最好使用此函数。

例如,我有一个python脚本,可解析一大堆CSV文件,并且我想返回每一行以在另一个函数中进行处理。我不想一次将所有兆字节的数据存储在内存中,因此我将yield每行都存储在python数据结构中。因此,从文件中获取行的功能可能类似于:

def get_lines(files):
    for f in files:
        for line in f:
            #preprocess line
            yield line

然后,我可以使用与列表相同的语法来访问此函数的输出:

for line in get_lines(files):
    #process line

但我节省了大量的内存使用量。

2021-01-20