如何使用for循环在字典中添加值?

时间:2020-07-20 07:45:17

标签: python list dictionary

我有一本字典,其中包含一个列表capex,其中有一个值。该词典的基本结构是:

outputDic = {
    "capex": [{
                "value": 450000,
                "start": 5,
                "year": 10
     }]
}

valuestartyear只是随机数,但是有decider变量将基本确定列表中将有多少个值。因此,只需说decider为2,那么将有两个值,如果为3,则列表中将有三个值,依此类推。我的方法:

outputDic = {
    "capex": [{
               "value": 450000,
               "start": 5,
               "year": 10
           }]
}

decider = 2
for i in range(1, decider):
    outputDic['capex'][i]['value'+str(i)] = 40*i
    outputDic['capex'][i]['start'+str(i)] = 20*i
    outputDic['capex'][i]['year'+str(i)] = 10*i
    
print(outputDic)

它给出了List out of index的错误,可能是因为列表中只有一个元素。我的预期输出是:

decider = 2
outputDic = {
    "capex": [
        {
            "value": 40,
            "start": 20,
            "year": 10
        },
        {
            "value": 80,
            "start": 40,
            "year": 20
        }
    ]
}
Can anyone please help?

1 个答案:

答案 0 :(得分:2)

这是一种方法。使用append将新项目添加到列表中。

outputDic = {
        "capex": []
}
decider = 2
for i in range(decider):
    outputDic['capex'].append(
        {
            'value' : 40*i, 
            'start': 20*i, 
            'year':10*i
        }
    )

print(outputDic)

输出为:

{'capex': [{'value': 0, 'start': 0, 'year': 0}, 
           {'value': 40, 'start': 20, 'year': 10}]}