问题在标题中。我无法让它工作:
>>> data = [{}] * 2
>>> data[1].update({3:4})
>>> data
[{3: 4}, {3: 4}]
键值对添加到数组的所有元素。我预计会收到:
[{}, {3: 4}]
最佳答案
问题在于
data = [{}] * 2
创建一个列表,其中两次包含相同的字典。
为了说明这一点,让我们看一下 id(data[0])
和 id(data[1])
:
>>> data = [{}] * 2
>>> data
[{}, {}]
>>> id(data[0])
4490760552
>>> id(data[1])
4490760552
请注意,id(data[0]) 和 id(data[1]) 是相同的,因为列表中的两个条目引用同一个对象
你可能想要的是
>>> d2 = [{} for i in range(2)]
>>> d2[0][4] = 'a'
>>> d2
[{4: 'a'}, {}]
关于Python-将键值对添加到数组中的字典中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33312644/