返回嵌套字典中具有最大值的键的名称

2024-09-25 02:28:38 发布

您现在位置:Python中文网/ 问答频道 /正文

面临的挑战是返回人口最多的省份的名称。我创建了一个嵌套字典

this_dict = {"Ontario": {"capital": "Toronto", "largest": "Toronto", "population": "14734014"},
             "Quebec": {"capital": "Quebec City", "largest": "Montreal", "population": "8574571"},
             "Nova Scotia": {"capital": "Halifax", "largest": "Halifax", "population": "979351"},
             "New Brunswick": {"capital": "Fredericton", "largest": "Moncton", "population": "781476"},
             "Manitoba": {"capital": "Winnipeg", "largest": "Winnipeg", "population": "1379263"},
             "British Columbia": {"capital": "Victoria", "largest": "Vancouver", "population": "5147712"},
             "Prince Edward Island": {"capital": "Charlottetown", "largest": "Charlottetown", "population": "159625"},
             "Saskatchewan": {"capital": "Regina", "largest": "Saskatoon", "population": "1178681"},
             "Alberta": {"capital": "Edmonton", "largest": "Calgary", "population": "4421876"},
             "Newfoundland and Labrador": {"capital": "St. John's", "largest": "St. John's", "population": "522103"}

             }

到目前为止,我创建了一个函数和代码:

 def get_largest_city():
    max_population = max([int(i['population']) for i in this_dict.values()])
    print(max_population)

这给了我一个最大的省的数字,即14734014 但是,我希望它的输出是返回省的名称,而在本例中应该是安大略省

我非常感谢大家对这方面的任何意见,我对Python非常陌生,有时会感到困惑。如果没有以最理想的方式解释这一点,我感到抱歉,并提前感谢您的帮助


Tags: 名称thisjohndictmaxst人口population
2条回答
>>> max(this_dict, key=lambda k: int(this_dict[k]["population"]))
'Ontario'

必须使用内置的^{}key参数:

def get_largest_city():
    max_population = max(this_dict.items(), key=lambda item: int(item[1]["population"]))
    return max_population[1]["capital"]

相关问题 更多 >