我有一个字典列表,其中一些值是字符串,而其他值是整数:
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'},
...]
我想将这些键值对中的每一个 reshape 为一个新的大字典。但是,我的方法有问题:
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。
请您参考如下方法:
.extend() 期望传递给它的参数是一个可迭代的,即。列表或字符串等。根据您的示例,population 是一个整数,因此不可迭代,因此您的异常消息。
如果您将其更改为 .append(),它将按照您的预期运行。
