Python:将字典存储在列表中

问题描述 投票:-1回答:1

我想将多个字典存储在列表中。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}]
python list dictionary
1个回答
0
投票

您应在循环的每次迭代中创建一个新的空字典。在当前版本中,m在整个执行过程中均指向同一对象,因此列表仅包含对该对象的4个引用。


0
投票
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}]
© www.soinside.com 2019 - 2024. All rights reserved.