我对 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)
我如何总结各国的人口?谢谢!
您可以使用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)