根據字典中值得大小,對字典中的項排序

2022-07-04 23:18:10 字數 1159 閱讀 1784

案例1:

某班語文科目的成績以字典形式儲存,形式為:

根據成績高低,計算學生的排名

解決方案:

使用內建函式sorted

1,利用zip將字典資料轉化為元組

2,傳遞sorted函式的key引數

# eg_v1 利用zip將字典資料轉化為元組

from random import randint

stud = # 建立隨機的成績單字典

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 randint

rest = # 建立隨機的成績單字典

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 思路 可以將列表中的字典先放入到乙個大字典中,對整個字典進行排序,...