python 进阶学习(二) 对字典进行按值排序

基于python36 和windows 10环境

使用场景:
有学生的成绩{‘lilei’: 90, ‘xiaoming’: 89…},按成绩多少进行排序

生成业务数据样例

from random import randint
d = {k: randint(60,100) for k in 'abcxyz'}
print(d)

输出结果:

{'a': 85, 'b': 97, 'c': 65, 'x': 75, 'y': 63, 'z': 82}

方法1:

result = sorted(zip(d.values(), d.keys()),reverse=True)
print(result)

输出结果:

[(97, 'b'), (85, 'a'), (82, 'z'), (75, 'x'), (65, 'c'), (63, 'y')]

方法2(推荐):

result2 = sorted(d.items(), key=lambda key: key[1], reverse=True)

输出结果:

[('b', 97), ('a', 85), ('z', 82), ('x', 75), ('c', 65), ('y', 63)]

小结:

  1. sorted()是python的内置函数,可迭代对象优先使用此函数进行排序
  2. 可通sorted()的参数key来指定排序的key.

猜你喜欢

转载自blog.csdn.net/weixin_39791387/article/details/81707705
今日推荐