Pythonはfor文でループ元の変数は変更できないと思っていました。しかし、この場合はループ元変数のdicts
が変更できています。これはなぜですか?
該当のソースコード
dict
... 辞書型の変数
dicts
... 辞書型の変数をリストで持つ変数
Python
1>>> dicts = [{"a": 1, "b": 10}, {"a": 1, "b": 10}] 2>>> for dict in dicts: 3... dict.update({"c": 1000}) 4... 5>>> dicts 6[{'a': 1, 'b': 10, 'c': 1000}, {'a': 1, 'b': 10, 'c': 1000}]
補足情報(FW/ツールのバージョンなど)
Python 3.9.13
Pythonのfor文でループ元変数の値が変更できないと思ったサイト
https://ja.stackoverflow.com/questions/31916/%E3%83%AA%E3%82%B9%E3%83%88%E3%81%AB%E5%90%AB%E3%81%BE%E3%82%8C%E3%82%8B%E5%A4%89%E6%95%B0%E3%81%AE%E5%80%A4%E3%82%92for%E6%96%87%E3%81%A7%E5%A4%89%E6%9B%B4%E3%81%97%E3%81%9F%E3%81%84
回答3件
あなたの回答
tips
プレビュー