zoukankan      html  css  js  c++  java
  • 根据字典中值得大小,对字典中的项排序

    案例1:
    某班语文科目的成绩以字典形式存储,形式为:{"lili":89,"wenwen":91 ...}
    根据成绩高低,计算学生的排名

    解决方案:
    使用内置函数sorted
    1,利用zip将字典数据转化为元组
    2,传递sorted函数的key参数

    # eg_v1 利用zip将字典数据转化为元组

    from random import randint
    stud = {x:randint(60,100) for x in "abcdefghjk"} # 创建随机的成绩单字典
    print(stud)
    # {'a': 89, 'b': 87, 'd': 83, 'j': 97, 'e': 74, 'f': 75, 'h': 97, 'g': 61, 'c': 62, 'k': 90}
    print(stud.keys()) # 得到字典的键
    # dict_keys(['a', 'b', 'd', 'j', 'e', 'f', 'h', 'g', 'c', 'k'])
    print (stud.values()) # 得到字典的值
    # dict_keys(['a', 'b', 'd', 'j', 'e', 'f', 'h', 'g', 'c', 'k'])
    
    z = zip(stud.values(),stud.keys())
    print (sorted(z))
    # [(61, 'g'), (62, 'c'), (74, 'e'), (75, 'f'), (83, 'd'), (87, 'b'), (89, 'a'), (90, 'k'), (97, 'h'), (97, 'j')]
    

      

    # eg_v2 传递sorted函数的key参数

    from random import randint
    
    rest = {x:randint(60,100) for x in "abcdefghjk"} # 创建随机的成绩单字典
    print (rest)
    # {'h': 96, 'j': 95, 'b': 97, 'g': 78, 'f': 64, 'k': 81, 'd': 72, 'e': 69, 'c': 93, 'a': 61}
    print (rest.items())
    # dict_items([('h', 96), ('j', 95), ('b', 97), ('g', 78), ('f', 64), ('k', 81), ('d', 72), ('e', 69), ('c', 93), ('a', 61)])
    result = sorted(rest.items(),key = lambda x:x[1])
    print (result)
    # [('a', 61), ('f', 64), ('e', 69), ('d', 72), ('g', 78), ('k', 81), ('c', 93), ('j', 95), ('h', 96), ('b', 97)]
    

      

  • 相关阅读:
    四则运算试题生成,结对
    3 词频统计
    20190912-1 每周例行报告
    20190912-2 命令行
    每周例行报告
    作业要求 20190919-1 每周例行报告
    作业要求20190919-4 单元测试,结对
    作业要求 20190919-6 四则运算试题生成,结对
    作业要求20190919-5 代码规范,结对要求
    作业要求20190919-2 功能测试
  • 原文地址:https://www.cnblogs.com/xieshengsen/p/7190303.html
Copyright © 2011-2022 走看看