我有字典,其中一些值是一个字符串列表,和其他值是整数:创建从字典列表一个新的字典在Python
list_countries = [{'country' : 'Suriname',
'population' : 532724,
'capital': 'Paramaribo',
'anthem': 'God zij met ons Suriname'},
{'country' : 'Sweden',
'population' : 9683248,
'capital': 'Stockholm',
'anthem': 'Du gamla, Du fria'},
...]
我想重塑每个这些键 - 值配对成一个大的新字典。然而,我的做法有问题:
dict_countries = { 'countries': [],
'pop': [],
'capital_city': [],
'national_anthem': [] }
然后我遍历并与.extend()
追加所有值。
for dictionary in list_countries:
dict_countries['countries'].extend(dictionary['country'])
dict_countries['pop'].extend(dictionary['population'])
dict_countries['capital_city'].extend(dictionary['capital'])
dict_countries['national_anthem'].extend(dictionary['anthem'])
但是,这是行不通的。所有的字符串都是通过字母分开的。对于整数,我得到的错误:
TypeError: 'int' object is not iterable
什么是正确的方法来做到这一点?
编辑:我相信每个键都有一个值。但是,假设没有。如果没有找到任何值,我将如何重写上述以添加NaN
。
考虑当你确实想这样做。你的列表字典有点脆弱:如果任何列表不同步,整个事情就会变得混乱。另一种选择是由国家索引的字典。 –
@ PM2Ring我将在一个pandas DataFrame中导入这本字典。也许我会重新提出这个问题,看看这是如何完成的。 – EB2127