【发布时间】:2020-10-25 09:38:11
【问题描述】:
我使用两种不同的方法创建了两个包含列表的相同字典:
dictA = dict.fromkeys(["key1", "key2"], [])
dictB = {
"key1": [],
"key2": [],
}
然而,当我将随机值或列表附加到每个字典的特定键时:
dictA["key2"].append(1)
dictB["key2"].append(1)
...我最终得到不同的结果:
{'key1': [1], 'key2': [1]}
{'key1': [], 'key2': [1]}
这是为什么呢?
【问题讨论】:
-
在第一种情况下,每个值都是对同一个数组的引用。
-
有一种简单的方法可以制作具有唯一列表作为值的字典:
{key:list() for key in ('key1', 'key2')}
标签: python dictionary append