私のコードはもっと明確になると思います-
someList = list()
foo = {'a':'b'}
someList.append(foo)
print someList
>>> [{'a':'b'}]
defaultbazz = {'a':2, 'b':'t', 'c':'gg'}
for k, v in defaultbazz.iteritems():
foo[k] = v
print someList
>>> [{'a': 2, 'c': 'gg', 'b': 't'}]
最後のプリントはすべきではありません[{'a':'b'}]
か?更新していませんがsomeList
、そのまま欲しいです。
それは私には解釈されていない振る舞いのようです。
しかし、それがPythonの動作方法である場合、回避策を見つけるにはどうすればよいですか?新しいdictを設定しても、元のdictが更新されます。つまり、次のようになります。
someList = list()
foo = {'a':'b'}
someList.append(foo)
print someList
>>> [{'a':'b'}]
bar = foo
defaultbazz = {'a':2, 'b':'t', 'c':'gg'}
for k, v in defaultbazz.iteritems():
bar[k] = v
print someList
>>> [{'a': 2, 'c': 'gg', 'b': 't'}]
なぜそれが起こるのか誰かが私に説明してくれるなら、私は感謝するでしょう。