我有以下Python代码,可以生成匿名函数列表:
我本以为它与之等价
basis = [ (lambda x: n*x) for n in [0, 1, 2] ]
print basis[0](1)
我本以为它与之等价
basis = [ (lambda x: 0*x), (lambda x: 1*x), (lambda x: 2*x) ]
print basis[0](1)
然而,第二个代码片段打印出了我期望的0,但是第一个代码片段打印出了2。第一个代码片段有什么问题?为什么它的行为与预期不同?