溫馨提示×

溫馨提示×

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

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

Python怎么實現(xiàn)對字典分別按鍵和值進行排序

發(fā)布時間:2021-04-09 11:32:30 來源:億速云 閱讀:177 作者:小新 欄目:開發(fā)技術(shù)

這篇文章主要介紹了Python怎么實現(xiàn)對字典分別按鍵和值進行排序,具有一定借鑒價值,感興趣的朋友可以參考下,希望大家閱讀完這篇文章之后大有收獲,下面讓小編帶著大家一起了解一下。

方法一:

#使用sorted函數(shù)進行排序
'''
sorted(iterable,key,reverse),sorted一共有iterable,key,reverse這三個參數(shù);
其中iterable表示可以迭代的對象,例如可以是dict.items()、dict.keys()等
key是一個函數(shù),用來選取參與比較的元素,reverse則是用來指定排序是倒序還是順序,reverse=true則是倒序,
reverse=false時則是順序,默認時reverse=false。
'''
#初始化字典
dict_data={6:9,10:5,3:11,8:2,7:6}

1、對字典按鍵(key)進行排序

#對字典按鍵(key)進行排序(默認由小到大)
test_data_0=sorted(dict_data.keys())
#輸出結(jié)果
print(test_data_0) #[3, 6, 7, 8, 10]
test_data_1=sorted(dict_data.items(),key=lambda x:x[0])
#輸出結(jié)果
print(test_data_1) #[(3, 11), (6, 9), (7, 6), (8, 2), (10, 5)]

2、對字典按值(value)進行排序

#對字典按值(value)進行排序(默認由小到大)
test_data_2=sorted(dict_data.items(),key=lambda x:x[1])
#輸出結(jié)果
print(test_data_2) #[('8', 2), ('10', 5), ('7', 6), ('6', 9), ('3', 11)]
test_data_3=sorted(dict_data.items(),key=lambda x:x[1],reverse=True)
#輸出結(jié)果
print(test_data_3) #[('3', 11), ('6', 9), ('7', 6), ('10', 5), ('8', 2)]

方法二:

import operator
#初始化字典
dict_data={6:9,10:5,3:11,8:2,7:6}
#按鍵(key)進行排序
test_data_4=sorted(dict_data.items(),key=operator.itemgetter(0))
test_data_5=sorted(dict_data.items(),key=operator.itemgetter(0),reverse=True)
print(test_data_4) #[(3, 11), (6, 9), (7, 6), (8, 2), (10, 5)]
print(test_data_5) #[(10, 5), (8, 2), (7, 6), (6, 9), (3, 11)]
#按值(value)進行排序
test_data_6=sorted(dict_data.items(),key=operator.itemgetter(1))
test_data_7=sorted(dict_data.items(),key=operator.itemgetter(1),reverse=True)
print(test_data_6) #[(8, 2), (10, 5), (7, 6), (6, 9), (3, 11)]
print(test_data_7) #[(3, 11), (6, 9), (7, 6), (10, 5), (8, 2)]

附:operator庫常用函數(shù)說明

操作語法函數(shù)
相加a + badd(a, b)
字符串拼接seq1 + seq2concat(seq1, seq2)
包含測試obj in seqcontains(seq, obj)
普通除法a / btruediv(a, b)
取整除法a // bfloordiv(a, b)
按位與a & band_(a, b)
按位異或a ^ bxor(a, b)
按位取反~ ainvert(a)
按位或a | bor_(a, b)
指數(shù)運算a ** bpow(a, b)
識別a is bis_(a, b)
識別a is not bis_not(a, b)
索引賦值obj[k] = vsetitem(obj, k, v)
索引刪除del obj[k]delitem(obj, k)
索引obj[k]getitem(obj, k)
左移a << blshift(a, b)
取模a % bmod(a, b)
乘法a * bmul(a, b)
負數(shù)-aneg(a)
非運算not anot_(a)
正數(shù)+ apos(a)
右移運算a >> brshift(a, b)
切片賦值seq[i:j] = valuessetitem(seq, slice(i, j), values)
切片刪除del seq[i:j]delitem(seq, slice(i, j))
切片seq[i: j]getitem(seq, slice(i, j))
字符串格式化s % objmod(s, obj)
減法a - bsub(a, b)
真值測試objtruth(obj)
小于a < blt(a, b)
小于等于a <= ble(a, b)
等于a == beq(a, b)
不等于a != bne(a, b)
大于等于a >= bge(a, b)
大于a > bgt(a, b)

感謝你能夠認真閱讀完這篇文章,希望小編分享的“Python怎么實現(xiàn)對字典分別按鍵和值進行排序”這篇文章對大家有幫助,同時也希望大家多多支持億速云,關(guān)注億速云行業(yè)資訊頻道,更多相關(guān)知識等著你來學(xué)習(xí)!

向AI問一下細節(jié)

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

AI