1.将字典中的项转化为(值,键)元组

1.1 列表解析

  1. from random import randint
  2. d = {k:randint(60, 100) for k in 'abcdefgh'}
  3. d1 = [(v, k) for k, v in d.items()]
  4. sorted(d1, reverse=True)

1.2 zip

  1. from random import randint
  2. d = {k:randint(60, 100) for k in 'abcdefgh'}
  3. d1 = list(zip(d.values(), d.keys()))
  4. sorted(d1, reverse=True)

2.传递sorted函数的key参数

  1. from random import randint
  2. d = {k:randint(60, 100) for k in 'abcdefgh'}
  3. sorted(d.items(), key=lambda item:item[1], reverse=True)

如需要添加排序编号,可使用enumerate

  1. from random import randint
  2. d = {k:randint(60, 100) for k in 'abcdefgh'}
  3. d1 = sorted(d.items(), key=lambda item:item[1], reverse=True)
  4. # 这里赋给一个新的字典,直接操作d会有排序问题
  5. d2 = {k:(i, v) for i,(k, v) in enumerate(d1, 1)}
  6. print(d2)