思路:字典转为包含元组的列表排序
代码示例
dct = { "百度": 30, "阿里": 20, "腾讯": 25 } print(dct) # {'百度': 30, '阿里': 20, '腾讯': 25} # 从小到大排序 dct_sorted = sorted(dct.items(), key=lambda item: item[1]) print(dct_sorted) # [('阿里', 20), ('腾讯', 25), ('百度', 30)] # 从大到小排序 dct_sorted_reverse = sorted(dct.items(), key=lambda item: item[1], reverse=True) print(dct_sorted_reverse) # [('百度', 30), ('腾讯', 25), ('阿里', 20)]
上面的代码使用lambda 表达式,还可以使用operator模块提供的方式
# -*- coding: utf-8 -*- import operator dct = { "百度": 30, "阿里": 20, "腾讯": 25 } sorted_dict = sorted(dct.items(), key=operator.itemgetter(1)) print(sorted_dict) # [('阿里', 20), ('腾讯', 25), ('百度', 30)]