🤔

Pythonのラムダ式のリスト内包表記でハマった

に公開2

以下のようなラムダ関数の配列

fs=[lambda: print(c) for c in range(3)]

for f in fs:
    f()

と実行すると

2
2
2

となってしまう。これは本来

fs=[lambda: print(0),lambda: print(1),lambda: print(2)]

と等価になってほしいのだが。期待する動作は以下

0
1
2

Discussion