Python中dict排序的兩種方法
dict 內(nèi)部是按照哈希值排序的,所以無(wú)法得到一個(gè)按照鍵/值升序/降序 的dict。
不過(guò)可以得到一個(gè)排好序的列表。
比如 d = {"a":1 , "b":3, "c":2} 排序后得到 [('a', 1), ('c', 2), ('b', 3)]
按照值排序
d = {"a":1 , "b":3, "c":2}
"""
得到排好序的列表
>>>d.items()
>>>dict_items([('a', 1), ('b', 3), ('c', 2)])
reverse是排序規(guī)則是否反過(guò)來(lái),默認(rèn)是升序
reverse = False 升序
reverse = True 降序
>>>d_list
>>>[('a', 1), ('c', 2), ('b', 3)]
"""
def get_sorted_list(d, reverse=False):
return sorted(d.items(), key=lambda x:x[1], reverse=reverse)
d_list = get_sorted_list(d)
我們可以獲取排好序后的key和value(這完全取決于你需要哪個(gè))
for key,val in d_list:
print(key,val)
"""
out:
a 1
c 2
b 3
"""
按照鍵排序
d = {"a":1 , "b":3, "c":2}
def sort_dict_by_keys(d, reverse=True):
# 這里如果不強(qiáng)制轉(zhuǎn)換會(huì)報(bào)錯(cuò),因?yàn)閐.keys()的類(lèi)型是:<class 'dict_keys'>,沒(méi)有sort方法
keys = list(d.keys())
keys.sort(reverse=reverse)
return [(key,d[key]) for key in keys]
d_sort = sort_dict_by_keys(d)
print(d_sort)
"""
out:
[('c', 2), ('b', 3), ('a', 1)]
"""不指定排序依據(jù)
# 創(chuàng)建一個(gè)字典
dic={'a':'甘肅酒泉','b':'廣州市','c':'四年'}
print(sorted(dic))
# 輸出
['a', 'b', 'c']指定排序依據(jù),同時(shí)返回 key-value
print(sorted(dic.items(),key=lambda s:s[0]))
print(sorted(dic.items(),key=lambda s:s[1]))
# 輸出
[('a', '甘肅酒泉'), ('b', '廣州市'), ('c', '四年')]
[('c', '四年'), ('b', '廣州市'), ('a', '甘肅酒泉')]字典本身是無(wú)序的數(shù)據(jù)容器,如果要對(duì)字典進(jìn)行排序,需要用到 sorted 這個(gè)函數(shù),不指定排序依據(jù)時(shí),默認(rèn)按照 key 進(jìn)行排序,并返回排序好的列表,指定排序依據(jù)時(shí),需要用字典獲取 key 和 value 的方法將 key 和 value 傳入 sorted 函數(shù),如果指定排序依據(jù)的同時(shí),想要他獲取鍵值對(duì),則需要先獲取字典的 item 傳入,然后指定 key 參數(shù),用 lambda 函數(shù)來(lái)獲取 key,上述排序默認(rèn)都是升序,如果降序排列,則將 reverse 參數(shù)設(shè)定為 True 即可。
到此這篇關(guān)于Python中dict排序的兩種方法的文章就介紹到這了,更多相關(guān)Python dict排序內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- python中字典dict排序sorted的實(shí)現(xiàn)
- Python sorted對(duì)list和dict排序
- Python OrderedDict字典排序方法詳解
- Python按照l(shuí)ist dict key進(jìn)行排序過(guò)程解析
- Python 按字典dict的鍵排序,并取出相應(yīng)的鍵值放于list中的實(shí)例
- python 對(duì)key為時(shí)間的dict排序方法
- python中dict字典的查詢(xún)鍵值對(duì) 遍歷 排序 創(chuàng)建 訪(fǎng)問(wèn) 更新 刪除基礎(chǔ)操作方法
- python 字典(dict)按鍵和值排序
- Python中字典(dict)和列表(list)的排序方法實(shí)例
相關(guān)文章
Python的凈值數(shù)據(jù)接口調(diào)用示例分享
這篇文章主要介紹了Python的凈值數(shù)據(jù)接口調(diào)用示例分享的相關(guān)資料,需要的朋友可以參考下2016-03-03
Python中如何實(shí)現(xiàn)真正的按位取反運(yùn)算
按位取反是位運(yùn)算符,而位運(yùn)算符是應(yīng)用在兩個(gè)數(shù)的運(yùn)算上,會(huì)對(duì)數(shù)字的二進(jìn)制所有位數(shù)進(jìn)行從低到高的運(yùn)算,下面這篇文章主要給大家介紹了關(guān)于Python中如何實(shí)現(xiàn)真正的按位取反運(yùn)算的相關(guān)資料,需要的朋友可以參考下2023-02-02
使用pygame實(shí)現(xiàn)垃圾分類(lèi)小游戲功能(已獲校級(jí)二等獎(jiǎng))
這篇文章主要介紹了使用pygame實(shí)現(xiàn)垃圾分類(lèi)小游戲功能(已獲校級(jí)二等獎(jiǎng)),本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-07-07
Python腳本實(shí)現(xiàn)依賴(lài)漏洞自動(dòng)掃描工具
這篇文章主要為大家詳細(xì)介紹了如何通過(guò)Python腳本實(shí)現(xiàn)一個(gè)依賴(lài)漏洞自動(dòng)掃描工具,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下2026-03-03
Python Django 后臺(tái)管理之后臺(tái)模型屬性詳解
這篇文章主要介紹了Python Django 后臺(tái)管理之后臺(tái)模型屬性,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2021-04-04
pytorch神經(jīng)網(wǎng)絡(luò)從零開(kāi)始實(shí)現(xiàn)多層感知機(jī)
這篇文章主要為大家介紹了pytorch神經(jīng)網(wǎng)絡(luò)從零開(kāi)始實(shí)現(xiàn)多層感知機(jī)的示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步2021-10-10
python opencv鼠標(biāo)交互操作的實(shí)用指南
最近的工作經(jīng)常需要對(duì)圖像進(jìn)行操作,也需要用鼠標(biāo)對(duì)圖像進(jìn)行各種操作,所以下面這篇文章主要給大家介紹了關(guān)于python opencv鼠標(biāo)交互操作的相關(guān)資料,需要的朋友可以參考下2021-10-10
基于keras中import keras.backend as K的含義說(shuō)明
這篇文章主要介紹了keras中import keras.backend as K的含義說(shuō)明,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-05-05
Python機(jī)器學(xué)習(xí)算法之決策樹(shù)算法的實(shí)現(xiàn)與優(yōu)缺點(diǎn)
決策樹(shù)(Decision Tree)是一種基本的分類(lèi)與回歸方法,這篇文章主要給大家介紹了關(guān)于Python機(jī)器學(xué)習(xí)算法之決策樹(shù)算法實(shí)現(xiàn)與優(yōu)缺點(diǎn)的相關(guān)資料,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2021-05-05

