按键聚合字典中的值

Pat*_*ada 2 python dictionary

我对 Python 很陌生,刚刚开始使用字典。我有以下问题:

给定以下字典:

{'Berlin': {'Country': 'Germany', 'Population': 3.502},
'New York': {'Country': 'USA', 'Population': 8.406},
'Munich': {'Country': 'Germany', 'Population': 1.388}, ... }
Run Code Online (Sandbox Code Playgroud)

我如何总结各国的人口?谢谢!

ett*_*any 5

您可以使用itertools.groupby()按国家/地区对数据进行分组,如下所示:

from itertools import groupby

my_dict = {'Berlin': {'Country': 'Germany', 'Population': 3.502}, 'New York': {'Country': 'USA', 'Population': 8.406}, 'Munich': {'Country': 'Germany', 'Population': 1.388}}

population = {}

for k,v in groupby(sorted(my_dict.items()), key=lambda i:i[1]['Country']):
    population[k] = sum(item[1]['Population'] for item in list(v))
Run Code Online (Sandbox Code Playgroud)

输出:

>>> population
{'Germany': 4.89, 'USA': 8.406}
Run Code Online (Sandbox Code Playgroud)