Python:字典按值(value)排序
字典(dict)是Python中常用的数据结构之一,它可以用来存储键值对。通常情况下,我们都是按键(key)来对字典进行排序,但有时候我们需要按字典中的值(value)进行排序,本文将简要介绍如何实现这一功能。
利用sorted()
Python中有一个内置函数sorted(),可以对任何可迭代的对象进行排序。因此,我们可以将字典按值(value)排序的方法转化为如何将字典转化为一个元素为(key, value)的列表,并对该列表进行排序。
具体实现代码如下:
my_dict = {'a': 12, 'b': 5, 'c': 10, 'd': 3}
sorted_dict = sorted(my_dict.items(), key=lambda x: x[1])
print(sorted_dict)
输出结果为:
[('d', 3), ('b', 5), ('c', 10), ('a', 12)]
其中,sorted()函数的参数为字典的items()方法,将字典转化为元素为(key, value)的列表。key参数是一个函数,用于指定排序的关键词。lambda表达式 x[1] 意思是对元组(key, value)的第二个元素value进行排序。
利用OrderedDict()
除了利用sorted()函数对字典按值排序外,collections模块提供的OrderedDict()类也可以实现这一功能。OrderedDict()是一个有序的字典类,可以保证字典中元素的查找和插入顺序一致。
利用OrderedDict()将字典按值排序的具体实现代码如下:
from collections import OrderedDict
my_dict = {'a': 12, 'b': 5, 'c': 10, 'd': 3}
sorted_dict = OrderedDict(sorted(my_dict.items(), key=lambda x: x[1]))
print(sorted_dict)
输出结果为:
OrderedDict([('d', 3), ('b', 5), ('c', 10), ('a', 12)])
其中,利用sorted()函数将字典转化为一个元素为(key, value)的列表,并对该列表按值排序;然后用OrderedDict()将排序后的列表转化为排序后的字典。
结语
本文介绍了两种实现字典按值(value)排序的方法:利用Python内置函数sorted()和collections模块提供的OrderedDict()类。这两种方法各有优缺点,具体使用可根据情况选择。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:python-字典按值(value)排序 - Python技术站