簡體   English   中英

如何在不更改原始字典的情況下將值分配給重復字典中的列表

[英]how to assign values to a list in duplicated dictionary without changing the original dictionary

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

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

產量

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

如何在不改變d和返回的情況下分配dic

d= {1:[]}
dic= {1:[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]}

你現在擁有的是一個淺表副本:它只是制作列表參考的副本。 因此,如果您在一個字典中更改列表的內容,它也會在另一個字典中更改。

您可以使用deepcopy函數(而不是copy )來創建與d相同的新字典。 不要忘記from copy import deepcopy導入它。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM