案例1:
某班語文科目的成績以字典形式儲存,形式為:
根據成績高低,計算學生的排名
解決方案:
使用內建函式sorted
1,利用zip將字典資料轉化為元組
2,傳遞sorted函式的key引數
# eg_v1 利用zip將字典資料轉化為元組
from random import randintstud = # 建立隨機的成績單字典
print(stud)
# 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 randintrest = # 建立隨機的成績單字典
print (rest)
# 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)]
如何根據字典中值的大小,對字典中的項排序
實際案例 某班英語成績以字典形式儲存為,根據成績高低,計算學生排名。這裡我們將利用內建函式sorted對學生的英語成績排名。方法一 首先,我們利用zip 將字典轉化為元組 然後,我們呼叫sorted函式對元組進行排序,如下 coding utf 8 from random import randin...
如何根據字典中值的大小, 對字典中的項排序
元組可以比較大小 3,2 1,4 返回true,3 1 3,2 3,4 返回false,2 4 1.列表解析 from random import randint d 產生資料 l v,k for k,v in d.items 列表解析 sorted l,reverse true 倒序執行結果 97...
列表中巢狀字典,根據字典的值排序 菜鳥
格式 資料型別為列表,列表元素為字典。由字典組織的列表形式。分析 可以將列表中的字典先放入到乙個大字典中,對整個字典進行排序,在排序完成後,再轉換為列表包含字典的形式即可 現在有乙個列表,根據每個字典的值進行排序。dict list 思路 可以將列表中的字典先放入到乙個大字典中,對整個字典進行排序,...