我在列表理解中使用 lambda 函数,发现了一些奇怪的行为
x = [(lambda x: i) for i in range(3)]
print(x[0](0)) #print 2 instead of 0
print(x[1](0)) #print 2 instead of 1
print(x[2](0)) #print 2
有人可以解释为什么结果不是我所期望的吗?
我在列表理解中使用 lambda 函数,发现了一些奇怪的行为
x = [(lambda x: i) for i in range(3)]
print(x[0](0)) #print 2 instead of 0
print(x[1](0)) #print 2 instead of 1
print(x[2](0)) #print 2
有人可以解释为什么结果不是我所期望的吗?