辞書の要素を最適化するモンテカルロコードを作成しようとしています。モンテカルロアルゴリズムでのPython辞書の更新
A = {}
A[1] = ['a','b','c']
A[2] = ['d','e','f']
これは
>>> A
{1: ['a', 'b', 'c'], 2: ['d', 'e', 'f']}
、その結果として、例えば、私は今私のモンテカルロでのトライアル動きがランダムな要素を取ることであると言う私の元の辞書の定義「」Aから[1]それをA [2]に入れます。しかし、私は元の辞書を保持したい。だから私は、最初に新しい辞書を作成:
B = A
をそしてBIに私が入手したかった修正辞書になり、必要な変更
B[1].remove('a')
B[2].append('a')
ますしかし
>>> B
{1: ['b', 'c'], 2: ['d', 'e', 'f', 'a']}
をこれは私の元の辞書Aも変えてしまいました。私はそれをバックアップしたかったのです。
>>> A
{1: ['b', 'c'], 2: ['d', 'e', 'f', 'a']}
これを行う方法はありますか。 ご協力いただきありがとうございます!
なぜ 'B = A'が辞書のコピーを作ると思いますか? – kindall
実際には、B = AはAのコピーを作成してBに割り当てますが、Aは辞書への参照です(その内容はリストへの参照で構成されています)。私は役に立つと思っています... – jimifiki