如何根据字典中值的大小,对字典中的项排序?
方法一:使用zip将字典数据转换为元组
from random import randint
# 生成随机字典
d = {x:randint(60,100) for x in 'xyzabc'}
print(d)
# 把值放在前面,键放在后面,构成元组,每个元组为列表的一个项
# 得到的结果为 [(74, 'z'), (80, 'y')...]形式
list1 = zip(d.values(), d.keys())
# 然后对得到的列表进行排序,就会以列表中的元组的第一项排序,相同时再比较第二项
print(sorted(list1))
方法二:使用 sorted 函数的 key 参数
from random import randint
# 生成随机字典
d = {x:randint(60,100) for x in 'xyzabc'}
print(d)
# d.items() 也是一个元组的列表,只是元组中键在前,值在后
# 使用 key 参数设置以第二项 (值)作为排序依据
print(sorted(d.items(), key = lambda x: x[1]))