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)

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM