я играю с лямбда-функциям внутри списка понимания, и нашел странное поведениеWeird поведение лямбда в списке понимание
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
Может кто-то объяснить, почему результат не то, что я могу рассчитывать?
+1 для ясности и краткости – gonz
'[lambda x, j = i: j для i в диапазоне (3)]' будет еще четче. – user763305
, если вы хотите использовать лямбда для определения функции, затем примените к ней переменную. Переменная в лямбде не то, что думает OP, несмотря на то, что она имеет тот же символ. Так что это, вероятно, то, что хочет OP: '[(lambda a: a) (i) для i в диапазоне (3)]' –