Python:将字典附加到列表中

时间:2015-07-09 03:27:10

标签: python list dictionary

这是一个在Python中创建字典列表的简单代码,但是循环中的append函数是创建列表而不是字典列表。

如何将字典附加到列表中?

data = []
d = { "item1": None,
     "item2": None
     }

for i in range(3):
    d["item1"] = i+1
    d["item2"] = i+2
    data.append(d)

print "data = ", data

我正在寻找的输出是

d = [
            {
                "item1": 1,
                "item2": 2
            },        
            {
                "item1": 2,
                "item2": 3
            },        
            {
                "item1": 3,
                "item2": 4
            }
         ]

2 个答案:

答案 0 :(得分:1)

您只是将d的引用添加到data列表中,但d引用永远不会更改,因此当您更改d的值时在下一次迭代中,以前在列表中添加的词典也会发生变化。

尝试 -

data = []
for i in range(3):
    d = {}
    d["item1"] = i+1
    d["item2"] = i+2
    data.append(d)
print "data = ", data

答案 1 :(得分:1)

您可以简单地添加新词典:

for i in range(3):
    data.append({"item1": i+1, "item2": i+2})

或者,更好的是,使用列表理解:

data = [{"item1": i+1, "item2": i+2} for i in range(3)]