Python如何根據(jù)字典中的值排序
如何根據(jù)字典中值的大小,對字典中的項(xiàng)排序
實(shí)際案例
某班英語成績以字典形式存儲為:{'LiLei': 79, 'Jim': 88, 'Lucy': 92, ...}
根據(jù)成績高低,計(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)建隨機(jī)的成績表,使用字典解析
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')],然后直接比較元組第一個(gè)值
'''
# 得到字典所有健或所有的值
# print(c.keys())
# print(c.values())
# 使用zip函數(shù),將兩個(gè)列表拼起來變成一個(gè)列表,因?yàn)榉祷氐氖且粋€(gè)對象所以使用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é)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
python讀取目錄下所有的jpg文件,并顯示第一張圖片的示例
今天小編就為大家分享一篇python讀取目錄下所有的jpg文件,并顯示第一張圖片的示例,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧2019-06-06
Python網(wǎng)絡(luò)編程之socket與socketserver
這篇文章介紹了Python網(wǎng)絡(luò)編程之socket與socketserver,文中通過示例代碼介紹的非常詳細(xì)。對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2022-05-05
pytorch finetuning 自己的圖片進(jìn)行訓(xùn)練操作
這篇文章主要介紹了pytorch finetuning 自己的圖片進(jìn)行訓(xùn)練操作,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-06-06
深入理解Python虛擬機(jī)中字典(dict)的實(shí)現(xiàn)原理及源碼剖析
這篇文章主要介紹了在?cpython?當(dāng)中字典的實(shí)現(xiàn)原理,在本篇文章當(dāng)中主要介紹在早期?python3?當(dāng)中的版本字典的實(shí)現(xiàn),現(xiàn)在的字典做了部分優(yōu)化,希望對大家有所幫助2023-03-03
Python基于template實(shí)現(xiàn)字符串替換
這篇文章主要介紹了Python基于template實(shí)現(xiàn)字符串替換,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-11-11
python實(shí)現(xiàn)從字符串中找出字符1的位置以及個(gè)數(shù)的方法
這篇文章主要介紹了python實(shí)現(xiàn)從字符串中找出字符1的位置以及個(gè)數(shù)的方法,對于Python字符串操作的學(xué)習(xí)有一定的幫助與借鑒作用,需要的朋友可以參考下2014-08-08
python使用pyshark庫捕獲數(shù)據(jù)包的示例詳解
PyShark是一個(gè)基于Python的網(wǎng)絡(luò)數(shù)據(jù)包分析工具庫,它允許用戶捕獲、解碼和分析實(shí)時(shí)網(wǎng)絡(luò)流量,特別是Wi-Fi和TCP/IP協(xié)議的數(shù)據(jù),所以本文給大家介紹了python使用pyshark庫捕獲數(shù)據(jù)包的示例,需要的朋友可以參考下2024-08-08

