美文网首页
如何根据字典中值的大小,对字典中的项排序?

如何根据字典中值的大小,对字典中的项排序?

作者: Diolog | 来源:发表于2019-02-07 23:51 被阅读0次

    实际案例:

    • 某班英语成绩以字典形式存储为:{'LiLei':79,'Jim':88,'Lucy':92}
    • 根据学生成绩高低,来计算学生排名

    解决方案:

    • 使用内置函数sorted
    • 利用zip将字典数据转化为元组
    • 传递sorted函数的key参数

    首先创建随机成绩表:

    from random import randint
    dict_grade = {x:randint(60,100) for x in 'xyzabc'}
    

    在执行解决方案之前,我们需要了解tuple比较的机制,因为后面使用到了tuple的比较。

    (79,'a') > (78,'a')
    (77,'a') < (78,'a')
    (78,'b') > (78,'a')
    (78,'b') < (78,'c')
    (79,'b') > (78,'c')
    

    接下来执行解决方案,首先使用zip将dict转化为tuple的列表。

    list_result = sorted(zip(dict_grade.values(),dict_grade.keys()))
    

    解决方案2:

    sorted(dict_grade.items(),key = lambda x:x[1])
    

    输出结果:

    [('a', 71), ('b', 78), ('c', 82), ('x', 88), ('z', 89), ('y', 97)]
    

    相关文章

      网友评论

          本文标题:如何根据字典中值的大小,对字典中的项排序?

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