Python如何根據(jù)字典中的值排序
如何根據(jù)字典中值的大小,對字典中的項排序
實際案例
某班英語成績以字典形式存儲為:{'LiLei': 79, 'Jim': 88, 'Lucy': 92, ...}
根據(jù)成績高低,計算學(xué)生排名。
注:字典的鍵就是學(xué)生名字,字典的值是學(xué)生分?jǐn)?shù)。
解決方案
使用內(nèi)置函數(shù)sorted
方法1:利用zip將字典數(shù)據(jù)轉(zhuǎn)換成元組列表
方法2:傳遞給sorted函數(shù)的key參數(shù)
代碼演示
# 使用sorted對列表進(jìn)行排序 print(sorted([9, 1, 2, 8, 5])) from random import randint # 創(chuàng)建隨機的成績表,使用字典解析 c = {x: randint(60, 100) for x in 'abcded'} print(c) print(sorted(c)) # 方法1: ''' 直接使用sorted對字典排序,并不是按照值進(jìn)行排序的,而是按照鍵。 sorted()傳入的是可迭代對象,對于字典進(jìn)行某種轉(zhuǎn)換,讓它變成sorted可以排序的結(jié)構(gòu)。 將字典轉(zhuǎn)換成元組列表,如: [(97, 'a'), (69, 'b')],然后直接比較元組第一個值 ''' # 得到字典所有健或所有的值 # print(c.keys()) # print(c.values()) # 使用zip函數(shù),將兩個列表拼起來變成一個列表,因為返回的是一個對象所以使用list()函數(shù)轉(zhuǎn)換一下 print(list(zip(c.values(), c.keys()))) # 然后對合成的元組列表進(jìn)行排序 print(sorted(zip(c.values(), c.keys()))) # 方法2: # 將字典的k:v以元組列表的形式返回 print(c.items()) # 設(shè)置sorted的key參數(shù)為字典的value print(sorted(c.items(), key=lambda x: x[1]))
總結(jié)
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
Python實現(xiàn)的合并兩個有序數(shù)組算法示例
這篇文章主要介紹了Python實現(xiàn)的合并兩個有序數(shù)組算法,涉及Python針對數(shù)組的遍歷、計算、追加等相關(guān)操作技巧,需要的朋友可以參考下2019-03-03一小時學(xué)會TensorFlow2之基本操作2實例代碼
這篇文章主要介紹了TensorFlow2的基本操作和實例代碼,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2021-09-09python神經(jīng)網(wǎng)絡(luò)MobileNetV3?large模型的復(fù)現(xiàn)詳解
這篇文章主要為大家介紹了python神經(jīng)網(wǎng)絡(luò)MobileNetV3?large模型的復(fù)現(xiàn)詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-05-05淺談Python里面None True False之間的區(qū)別
這篇文章主要介紹了淺談Python里面None True False之間的區(qū)別,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-07-07python調(diào)用jenkinsAPI構(gòu)建jenkins,并傳遞參數(shù)的示例
這篇文章主要介紹了python調(diào)用jenkinsAPI構(gòu)建jenkins,并傳遞參數(shù)的示例,幫助大家更好的理解和學(xué)習(xí)python,感興趣的朋友可以了解下2020-12-12PyG搭建GCN需要準(zhǔn)備的數(shù)據(jù)格式
這篇文章主要為大家介紹了PyG搭建GCN前需要準(zhǔn)備的PyG數(shù)據(jù)格式,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-05-05Python的pywifi無線網(wǎng)絡(luò)庫的具體使用
pywifi是一個基于Python的用于操作無線網(wǎng)絡(luò)的庫,本文就來介紹一下pywifi的安裝及實際應(yīng)用場景使用,具有一定的參考價值,感興趣的可以了解一下2024-02-02