思路:字典转为包含元组的列表排序
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)]