📅  最后修改于: 2023-12-03 15:04:12.582000             🧑  作者: Mango
在Python中,有时我们需要对嵌套的字典进行排序,而且是按照字典值来排序。这在处理大量数据的时候特别有用。本文将介绍如何使用Python以及内置的sorted()
函数来实现按值对嵌套键进行排序。
假设我们有一个嵌套字典表示各个城市的人口数量:
population = {'New York': {'2018': 8622698, '2019': 8475976, '2020': 8378396},
'Los Angeles': {'2018': 3990456, '2019': 3977683, '2020': 3977596},
'Chicago': {'2018': 2705994, '2019': 2693976, '2020': 2677643},
'Houston': {'2018': 2325502, '2019': 2303482, '2020': 2339867},
'Phoenix': {'2018': 1660272, '2019': 1680992, '2020': 1716269}}
我们希望按照人口数量进行排序,从最多到最少。
我们可以使用sorted()
函数的key
参数来指定排序的依据。在这里,我们通过定义一个get_population
函数来获取每个城市的最新人口数量,并将其作为sorted()
函数的key
参数:
def get_population(city):
return population[city]['2020']
sorted_cities = sorted(population, key=get_population, reverse=True)
这段代码将返回一个按人口数量排序的城市列表。key
参数指定了按照get_population
函数的返回值进行排序,而reverse=True
参数则表示按降序进行排列。
打印出sorted_cities
列表,结果如下:
['New York', 'Los Angeles', 'Phoenix', 'Chicago', 'Houston']
这是按照最新人口数量从大到小排序的城市列表。
通过使用sorted()
函数和自定义的key
函数,我们可以在Python中按值对嵌套字典的键进行排序。本文提供了一个简单的示例,展示了如何按最新人口数量对城市进行排序。你可以根据自己的需求修改get_population
函数来适应其他的嵌套字典排序需求。
希望本文对你有所帮助,谢谢阅读!