溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

python中怎么通過多個鍵值將對象進(jìn)行排序

發(fā)布時(shí)間:2022-03-24 10:01:04 來源:億速云 閱讀:209 作者:小新 欄目:web開發(fā)

這篇文章主要介紹python中怎么通過多個鍵值將對象進(jìn)行排序,文中介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們一定要看完!

通過多個鍵值將對象進(jìn)行排序

假設(shè)要對以下字典列表進(jìn)行排序:

people = [ 
{ 'name': 'John', "age": 64 }, 
{ 'name': 'Janet', "age": 34 }, 
{ 'name': 'Ed', "age": 24 }, 
{ 'name': 'Sara', "age": 64 }, 
{ 'name': 'John', "age": 32 }, 
{ 'name': 'Jane', "age": 34 }, 
{ 'name': 'John', "age": 99 }, 
]

不僅要按名字或年齡對其進(jìn)行排序,還要將兩個字段同時(shí)進(jìn)行排序。在SQL中,會是這樣的查詢:

SELECT * FROM people ORDER by name, age

實(shí)際上,這個問題的解決方法可以非常簡單,Python保證sort函數(shù)提供了穩(wěn)定的排序順序,這也意味著比較相似的項(xiàng)將保留其原始順序。要實(shí)現(xiàn)按名字和年齡排序,可以這樣做:

import operator 
people.sort(key=operator.itemgetter('age')) 
people.sort(key=operator.itemgetter('name'))

要注意如何反轉(zhuǎn)順序。首先按年齡分類,然后按名字分類,使用operator.itemgetter()從列表中的每個字典中獲取年齡和名字字段,這樣你就會得到想要的結(jié)果:

[ 
{'name': 'Ed', 'age': 24}, 
{'name': 'Jane', 'age': 34}, 
{'name': 'Janet','age': 34}, 
{'name': 'John', 'age': 32}, 
{'name': 'John', 'age': 64}, 
{'name': 'John', 'age': 99}, 
{'name': 'Sara', 'age': 64} 
]

名字是主要排序項(xiàng),如果姓名相同,則以年齡排序。因此,所有John都按年齡分組在一起。

以上是“python中怎么通過多個鍵值將對象進(jìn)行排序”這篇文章的所有內(nèi)容,感謝各位的閱讀!希望分享的內(nèi)容對大家有幫助,更多相關(guān)知識,歡迎關(guān)注億速云行業(yè)資訊頻道!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI