Python では、2 つの辞書を使用して、単純に
dict2 = dict1
dict2 が dict1 の別個のコピーになることはありません。それらは同じものを指すため、dict2 を変更すると、dict1 に対して同じ効果が実行されます。
1つの回避策は
dict2 = dict(dict1)
したがって、dict2 を変更しても、dict1 の値には影響しません。
私のプログラムでは、現在、以前の辞書の複数のコピーで構成される辞書を作成しています。前の辞書を temp2 と呼び、現在の辞書を temp3 と呼びましょう。事前に何部必要になるかわからないので、次のように考えました。
temp3 = {}
for i in xrange(some_number):
temp3[i] = dict(temp2)
しかし、私のデバッグ テストでは、temp3[0] の辞書 (これも temp2 のコピーです) を変更すると、temp3[1] のコピーや temp3[2] なども変更されることが示されています。したがって、結果は辞書の n 個の同一のコピーで構成される辞書になります。ここで、n = some_number です。誰かが回避策を知っていますか? ありがとう。
編集: コメントに応じて、temp2 はリストである値で構成される辞書であるため、{a: [list1]、b: [list2] など}。