如何使用循环遍历包含列表的字典,计算内容并将结果添加到字典中?

时间:2020-11-02 22:04:32

标签: python list dictionary iteration population

我正在构建一个具有年份(关键字)和值列表的字典[人口数据,0,0] 我能够编写一个循环以将年份添加为字典键(1950年至1990年),并从文件中导入总体数据以添加为[value [0],...]

现在,值[1]和值[2]为空。

如何编写一个循环遍历字典的循环(从索引1开始,而不是0 ),计算总体变化,并将其放入值[1] ...针对每个项目在我的字典中? (之后,我将价值的百分比变化[2]

myDict = {'1950':[141902,0,0], '1951':[157311,0,0], '1952':[186006,0,0], ....}#等。来自文件对象的填充数据

dict_key = [1950,1951,1952,1953,...]#共41个值,到1990年

到目前为止我所拥有的:

def compute_population_change(myDict,dict_key):

for i in range(1, (len(dict_key))):
    value[i] = 7
    myDict[key[i]] = [value[i], 0, 0]

return myDict

我写了value [i] = 7作为测试,以了解如何在该位置放置东西

谢谢您的光临。

如果需要更多上下文,其余代码位于:https://github.com/alexisabadger/pythonDictionaryAndList/blob/main/PopulationDataCounter.py

1 个答案:

答案 0 :(得分:0)

您可以使用foor循环遍历字典,并且由于键表示存储为字符串的升序数字,因此可以将字符串转换为整数,将其减去然后再次转换为字符串以获取列表。前一年。

for year in myDict:
    if year != '1950':
        #Calculate the difference in population of two consecutive years.
        myDict[year][1] = myDict[year][1]-myDict[str(int(year)-1)][1]

        #Calculate the difference as a percentage
        myDict[year][2] = (1-myDict[year][1]/myDict[str(int(year)-1)][1])*100