Skip to main content
 首页 » 编程设计

python之从 Python 中的字典列表创建新字典

2025年05月04日32haluo1

我有一个字典列表,其中一些值是字符串,而其他值是整数:

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(),它将按照您的预期运行。