【发布时间】:2015-07-15 04:40:04
【问题描述】:
我需要将函数存储在字典中,每个函数都取决于它的键,比如说,对于一个键 1,关联的 lambda 函数是 lambda s: s * A[1]。我尝试使用 dict 理解,但似乎内联函数以循环的最后一个值定义结束。
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]。这段代码有什么问题?
【问题讨论】:
-
至少生成的对象的打印确实是具有四个键的四个函数,0、1、2、3。字典理解的文档说这应该是正确的......我认为@987654321 @
-
只是好奇你用这个做什么以及 A 和 s 是什么?
-
@Scott 我想存储一些涉及基本操作的函数(A 只是一个数组,例如 numpy 数组),然后使用一些像树这样的数据结构我想获得正确的索引来评估所需的我在叶子中找到的功能,但只是和想法:)
标签: python dictionary lambda