📜  按值对字典排序 - Python (1)

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

按值对字典排序 - Python

在 Python 中,字典是无序的集合。但是,如果我们想要按照值对字典进行排序,我们可以使用一些简单的技巧。

方法一:使用 sorted() 函数

使用 Python 的内置函数 sorted() 可以按照键值的顺序对字典进行排序,并将排序后的结果返回为一个列表。我们可以使用 key 参数来指定排序的规则。例如,对于如下的字典:

my_dict = {'apple': 25, 'banana': 39, 'orange': 15, 'watermelon': 30}

我们可以按照值(数量)从小到大的顺序来排序:

sorted_dict = sorted(my_dict.items(), key=lambda x: x[1])

这将返回一个按照值排序的元组列表:

[('orange', 15), ('apple', 25), ('watermelon', 30), ('banana', 39)]

如果我们想要按照值从大到小的顺序排序,我们可以使用 reverse 参数:

sorted_dict = sorted(my_dict.items(), key=lambda x: x[1], reverse=True)

这将返回一个按照值从大到小排序的元组列表:

[('banana', 39), ('watermelon', 30), ('apple', 25), ('orange', 15)]
方法二:使用 operator 模块

Python 中的 operator 模块提供了一些对序列进行操作的函数。我们可以使用 itemgetter() 函数来按照键或值排序。例如,要按照值从小到大的顺序对字典进行排序,我们可以使用如下代码:

import operator

my_dict = {'apple': 25, 'banana': 39, 'orange': 15, 'watermelon': 30}
sorted_dict = sorted(my_dict.items(), key=operator.itemgetter(1))

这将返回一个按照值从小到大排序的元组列表:

[('orange', 15), ('apple', 25), ('watermelon', 30), ('banana', 39)]

如果我们要按照值从大到小排序,我们可以使用 itemgetter() 函数的 reverse 参数:

sorted_dict = sorted(my_dict.items(), key=operator.itemgetter(1), reverse=True)

这将返回一个按照值从大到小排序的元组列表:

[('banana', 39), ('watermelon', 30), ('apple', 25), ('orange', 15)]

需要注意的是,使用 operator 模块可以提高代码的可读性和可维护性。

以上就是按值对字典排序的两种简单方法。