gpt4 book ai didi

python - 奇怪的行为 : Lambda inside list comprehension

转载 作者:IT老高 更新时间:2023-10-28 21:10:08 24 4
gpt4 key购买 nike

在 python 2.6 中:

[x() for x in [lambda: m for m in [1,2,3]]]

结果:

[3, 3, 3]

我希望输出为 [1, 2, 3]。即使使用非列表理解方法,我也会遇到完全相同的问题。甚至在我将 m 复制到另一个变量之后。

我错过了什么?

最佳答案

要让 lambda 记住 m 的值,您可以使用具有默认值的参数:

[x() for x in [lambda m=m: m for m in [1,2,3]]]
# [1, 2, 3]

这是因为默认值在定义时设置一次。现在,每个 lambda 都使用自己的默认值 m,而不是在 lambda 执行时在外部范围内查找 m 的值。

关于python - 奇怪的行为 : Lambda inside list comprehension,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7368522/

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