3
d = {1:[]}
dic = d.copy()
dic[1].append(2)

print "d=", d
print "dic=", dic

出力

d= {1:[2]}
dic= {1:[2]}

dic変更せずに割り当てdて返す方法

d= {1:[]}
dic= {1:[2]}
4

2 に答える 2

2

使用copy.deepcopy()

In [5]: import copy

In [6]: d = {1:[]}

In [7]: dic = copy.deepcopy(d)

In [8]: dic[1].append(2)

In [9]: d
Out[9]: {1: []}

In [10]: dic
Out[10]: {1: [2]}

あなたが今持っているのは浅いコピーです:それはただリスト参照のコピーを作成します。その結果、一方の辞書のリストの内容を変更すると、もう一方の辞書も変更されます。

于 2013-03-26T07:06:04.183 に答える
-2

deepcopy(の代わりに)関数を使用copyして、と同じ新しい辞書を作成できますd。でインポートすることを忘れないでくださいfrom copy import deepcopy

于 2013-03-26T07:06:47.620 に答える