【发布时间】:2011-05-24 11:32:53
【问题描述】:
我有以下生成匿名函数列表的 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)
然而,虽然第二个 sn-p 打印出 0,这是我所期望的,但第一个打印出 2。第一个 sn-p 代码有什么问题,为什么它的行为不符合预期?
【问题讨论】: