zoukankan      html  css  js  c++  java
  • python开发笔记-字典按值排序取前n个key值

    场景举例:

      假如我们有某个班级的语文成绩数据,格式为字典,其中字典key为学生姓名,value为学生成绩;

          那么,如何获得单科成绩排名前3的学生姓名?

    代码如下:--数据样例,方便测试  

    def dic_order_value_and_get_key(dicts, count):
        # by hellojesson
        # 字典根据value排序,并且获取value排名前几的key
        # 样例: dicts = {'王二狗':66,'李大东':55,'刘小明':99, '胡八一':88}
        final_result = []
        # 先对字典排序
        sorted_dic = sorted([(k, v) for k, v in dicts.items()], reverse=True)
        tmp_set = set()  # 定义集合 会去重元素 --此处存在一个问题,成绩相同的会忽略,有待改进
        for item in sorted_dic:
            tmp_set.add(item[1])
        for list_item in sorted(tmp_set, reverse=True)[:count]:
            for dic_item in sorted_dic:
                if dic_item[1] == list_item:
                    final_result.append(dic_item[0])
        return final_result

     上边代码是一个独立的方法,调用的时候,将符合格式的字典数据传入,以及传入需要获取的前几位值,

     例:取前3名 dic_order_value_and_get_key(dicts, 3)

  • 相关阅读:
    观察者模式
    vim7.4+python3配置
    GAN_李弘毅讲解
    关于Anaconda的环境和包管理
    inception v1-v3 & Xception
    python使用PDB进行调试
    python中“*”、"*args"、"kwargs"三种用法
    解决样本类别不平衡以及困难样本问题的方法总结
    Focal Loss
    RefineDet网络简介(转载)
  • 原文地址:https://www.cnblogs.com/hellojesson/p/11245221.html
Copyright © 2011-2022 走看看