Python lambda表达式列表的行为

Python lambda表达式列表的行为,python,list,lambda,Python,List,Lambda,我创建了一个lambda函数列表,后来在列表中调用了这些函数。 然而,他们只称最后一只为lambda。 为了检查lambda,我无法看到它是什么,因为它返回的是一个类似的签名。 除非Python不允许包含lambda函数的列表? 我正在使用Python3 quxs = [2, 3, 5, 7] funs = [] for qux in quxs: funs.append (lambda x, y: x + y * qux) for fun in funs: print (fun

我创建了一个lambda函数列表,后来在列表中调用了这些函数。 然而,他们只称最后一只为lambda。 为了检查lambda,我无法看到它是什么,因为它返回的是一个类似
的签名。 除非Python不允许包含lambda函数的列表? 我正在使用Python3

quxs = [2, 3, 5, 7]
funs = []
for qux in quxs:
    funs.append (lambda x, y: x + y * qux)
for fun in funs:
    print (fun (1, 4))

# expected: 9, 13, 21, 29
# result: 29, 29, 29, 29

更改为
funs.append(lambda x,y,p=qux:x+y*p)
问题已经得到了回答,但我添加了我认为更好的解释(作为对第一个重复列出的答案)。@6502这确实是一个好答案!