gpt4 book ai didi

python - 生成器与列表理解

转载 作者:太空狗 更新时间:2023-10-30 00:36:16 26 4
gpt4 key购买 nike

我有一些东西,当作为列表理解运行时,运行良好。

看起来,

[myClass().Function(things) for things in biggerThing]

Function 是一种方法,它构建了一个列表。该方法本身不返回任何内容,但会在其中对列表进行操作。

现在,当我将其更改为 generator 时,

(myClass().Function(things) for things in biggerThing)

它不会像我期望的那样处理数据。事实上,它似乎根本没有操纵它。

列表理解生成器 之间的功能区别是什么?

最佳答案

生成器在消耗时会即时评估。因此,如果您从不迭代生成器,则永远不会评估其元素。

所以,如果你这样做了:

for _ in (myClass().Function(things) for things in biggerThing):
pass

Function 将运行。


现在,您的意图真的不清楚。

相反,请考虑使用 map:

map(myClass().Function, biggerThing)  

请注意,这将始终使用同一个 MyClass 实例

如果这是一个问题,那么做:

for things in BiggerThing:
myClass().Function(things)

关于python - 生成器与列表理解,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19933753/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com