📌  相关文章
📜  Python – 按值对嵌套键进行排序(1)

📅  最后修改于: 2023-12-03 15:04:12.582000             🧑  作者: Mango

Python – 按值对嵌套键进行排序

在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函数来适应其他的嵌套字典排序需求。

希望本文对你有所帮助,谢谢阅读!