我想将多个字典存储在列表中。dict具有相同的密钥。
>>> m = {}
>>> l = []
>>> for i in range(4):
... m["i"] = i+2
... m["j"] = i+5
... l.append(m)
...
>>> print(l)
[{'i': 5, 'j': 8}, {'i': 5, 'j': 8}, {'i': 5, 'j': 8}, {'i': 5, 'j': 8}]
But, I want to know store as below
[{'i': 2, 'j': 5}, {'i': 3, 'j': 6}, {'i': 4, 'j': 7}, {'i': 5, 'j': 8}]
您应在循环的每次迭代中创建一个新的空字典。在当前版本中,m
在整个执行过程中均指向同一对象,因此列表仅包含对该对象的4个引用。
l = []
for i in range(4):
l.append({'i': i+2, 'j': i+5})
print(l)
输出:
[{'i': 2, 'j': 5}, {'i': 3, 'j': 6}, {'i': 4, 'j': 7}, {'i': 5, 'j': 8}]