python - 如何在不更改原始字典的情况下将值分配给重复字典中的列表

标签 python list 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]}

您现在拥有的是一个副本:它只是制作列表引用的副本。因此,如果您更改一个词典中列表的内容,它也会在另一个词典中更改。

关于python - 如何在不更改原始字典的情况下将值分配给重复字典中的列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15631221/

相关文章:

python - Visual Studio Code 中调试和运行模式下使用的不同 python 环境

java - 从列表构建链接链

java - 如何使用 Dozer 将字符串值映射到字符串列表?

java - 如何使用 Java 8 Lambdas 将对象列表转换为 Map<Object, Object>

python - sqlalchemy没有这样的表: user

python - 如何使用Scrapy获取域名?

python - 如何在Python中将 boolean numpy数组保存到文本文件?

python - 如何将混合维数组展平为二维列表?

python - numpy 矩阵的映射索引

dictionary - MapQuest JS API - 如何定位自定义标记图标