重複の可能性:
ラムダ式で変数の値を使用する
私はPythonで作業しており、ラムダ関数で発生した問題を特定しようとしています。
次のコードから、2 つのラムダ関数を作成し、それぞれが異なる x を取得することを期待していました。出力は
1 2である必要があります。
しかし、出力は 2 2 です
なんで?どうすれば2つの異なる関数を作成できますか? デフを使用していますか?
def main():
d = {}
for x in [1,2]:
d[x] = lambda : print(x)
d[1]()
d[2]()
if __name__ == '__main__':
main()