我正在构建一个具有年份(关键字)和值列表的字典[人口数据,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
答案 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