1.将字典中的项转化为(值,键)元组
1.1 列表解析
from random import randintd = {k:randint(60, 100) for k in 'abcdefgh'}d1 = [(v, k) for k, v in d.items()]sorted(d1, reverse=True)
1.2 zip
from random import randintd = {k:randint(60, 100) for k in 'abcdefgh'}d1 = list(zip(d.values(), d.keys()))sorted(d1, reverse=True)
2.传递sorted函数的key参数
from random import randintd = {k:randint(60, 100) for k in 'abcdefgh'}sorted(d.items(), key=lambda item:item[1], reverse=True)
如需要添加排序编号,可使用enumerate
from random import randintd = {k:randint(60, 100) for k in 'abcdefgh'}d1 = sorted(d.items(), key=lambda item:item[1], reverse=True)# 这里赋给一个新的字典,直接操作d会有排序问题d2 = {k:(i, v) for i,(k, v) in enumerate(d1, 1)}print(d2)