遍历一个列表,为同一组键创建值



我将一个.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]
}

相关内容

  • 没有找到相关文章

最新更新