一个班级中的学生姓名学号存在字典里如下:
>>> from random import randint
>>> data = {x: randint(60, 100) for x in 'abcdef'}
>>> data
{'a': 83, 'f': 76, 'c': 67, 'e': 84, 'b': 68, 'd': 99}
下面要对这些学生的成绩进行排序并且输出学号和成绩
想到排序问题,Python内置的sorted最先考虑,但是如果对字典直接进行排序的话就会是下面这样
>>> sorted(data)
['a', 'b', 'c', 'd', 'e', 'f']
显然不是我们想要的结果,但是考虑元组的比较规则
>>> (1, 'a') > (2, 'b')
False
>>> (1, 'a') < (2, 'b')
True
我们就可以使用下面的方法
>>> sorted(zip(data.values(), data.keys()))
[(67, 'c'), (68, 'b'), (76, 'f'), (83, 'a'), (84, 'e'), (99, 'd')]
完美的解决了问题
网友评论