python - 内联函数的字典理解

标签 python dictionary lambda

<分区>

我需要在字典中存储函数,每个函数都取决于它的键,比方说,对于键 1 关联的 lambda 函数是 lambda s: s * A[1] 。我尝试使用字典理解,但似乎内联函数以循环的最后一个值定义结束。

d = {k, lambda s: s * A[k] for k in range(n)}  # e.g. n = 4

之后创建的所有 lambda 函数都使用 A[3] 声明,而不是 A[0]、A[1]、A[2] A[3]。这段代码有什么问题?

最佳答案

修复它的方法是将代码更改为:

d = {k: lambda s, k=k: s * A[k] for k in range(n)}

在没有绑定(bind)的情况下,Python 在调用每个 lambda 时查找“当前”k,在原始代码中始终为 n-1

关于python - 内联函数的字典理解,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31421638/

相关文章:

java - 使用预参数 Spark 进行 Pycharm 调试

python - 返回一个字典,其中不同的单词作为键,它在文本中的出现位置作为值

c# - 使用 groupby 将 SQL 转换为 lambda

c++ - 为什么我在自定义比较器时收到有关空指针的错误

python - 在 Python 中退出 Tks 主循环?

python - 无需等待子进程在 Windows 上终止即可与子进程通信

python - django TemplateDoesNotExist 异常但模板存在

C# 基本字典排序 只需要清除错误

javascript - 在 MapMyindia map 上显示多个标记

c# - Linq 从另一个区间列表中选择任何区间内的所有数字