Python中如何根据字典元素的数值对字典元素进行排序
Python字典按值排序实现方案
注意:Python 3.7及以上版本的内置dict默认保留键值对插入顺序,低于该版本请使用collections.OrderedDict存储排序结果,否则排序后的顺序不会被保留
核心实现基于Python内置的sorted()函数,指定排序维度为字典的值、排序规则为降序即可,对应示例代码如下:
ex_dict = {"text1" : 63 , "text2" : 71 , "text3" : 3} # 排序生成目标有序字典 sorted_dict = dict( sorted( ex_dict.items(), key=lambda kv: kv[1], # 按每个键值对的值作为排序依据 reverse=True # 降序排列,若需要升序删除该参数即可 ) )
执行后sorted_dict的输出和预期完全一致:
{"text2" : 71 , "text1" : 63 , "text3" : 3}
参数说明
ex_dict.items():返回字典所有(键, 值)组成的可迭代元组集合,是排序操作的遍历对象key=lambda kv: kv[1]:传入sorted的排序规则函数,指定取元组的第二位(也就是字典的值)作为排序对比的依据reverse=True:控制排序方向,设为True时为从大到小降序,默认值为False即从小到大升序
低版本Python兼容写法
如果使用Python3.7以前的版本,内置字典不保证插入顺序,需要导入OrderedDict存储结果:
from collections import OrderedDict ex_dict = {"text1" : 63 , "text2" : 71 , "text3" : 3} sorted_dict = OrderedDict(sorted(ex_dict.items(), key=lambda kv: kv[1], reverse=True))
内容的提问来源于stack exchange,提问作者Coolsugar
相关产品推荐
相关产品推荐

