我将一个.csv文件剥离并拆分为一个嵌套列表,我希望它成为一个嵌套字典。主键应该是国家,然后值应该是国家所在大陆、人均gdp、人口和面积的字典,所以它看起来像这样:
{'Luxembourg': {'continent': 'Europe', 'gdpPerCapita': 122740, 'population': 634730, 'area': 2586},
'Singapore': {'continent': 'Asia', 'gdpPerCapita': 102742, 'population': 5453600, 'area': 728}
除了当我遍历列表以定义嵌套字典的键值时,它存储每个国家的最后一个国家的信息。我知道它为什么会这样,但我不知道如何修复它。
country_dict={}
for i in data_list:
country_dict['continent']=i[1]
country_dict['gdpPerCapita']=i[2]
country_dict['population']=i[3]
country_dict['area']=i[4]
data_dict[i[0]]= country_dict
字典是可变的,您将data_dict[i[0]]
的引用设置为指向指向单个字典的变量country_dict
,您将在每个循环中覆盖该字典。
设置country_dict
为循环中的新字典:
for i in data_list:
country_dict={}
country_dict['continent']=i[1]
country_dict['gdpPerCapita']=i[2]
country_dict['population']=i[3]
country_dict['area']=i[4]
data_dict[i[0]]= country_dict
或:
for i in data_list:
data_dict[i[0]] = {
'condinent':i[1],
'gdpPerCapita':i[2],
'population':i[3],
'area':i[4]
}