Python字典如何根据值来排序

作者: 我有一只碗 | 来源:发表于2017-07-22 20:35 被阅读0次

    一个班级中的学生姓名学号存在字典里如下:

    >>> 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')]
    

    完美的解决了问题

    相关文章

      网友评论

        本文标题:Python字典如何根据值来排序

        本文链接:https://www.haomeiwen.com/subject/swqykxtx.html