リスト内包表記内でラムダ関数をいじっていて、奇妙な動作を見つけました
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
結果が私が期待するものではない理由を誰かが説明できますか?
リスト内包表記内でラムダ関数をいじっていて、奇妙な動作を見つけました
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
結果が私が期待するものではない理由を誰かが説明できますか?