演算法試題 實現對乙個字典的值進行排序

2022-06-27 23:06:17 字數 1018 閱讀 9694

實現對乙個字典的值進行排序

sorted 只能對字典的 鍵進行排序, 吧字典的鍵,值分開然後重新換個位置進行排序

但是 sorted 對字典排序後的結果就只剩下鍵了. 因此此方法不行

基於思路一的問題, 為了解決不會丟失值的問題, 只能吧鍵和值分開儲存,然後在組合在一起

這裡使用到了 zip 函式, zip 函式組合成乙個元組 ( 值放在前面, 先比較前面的 ) 

然後在使用 sorted 進行排序, 這樣就可以對值進行排序同時保留鍵值所有資料了

字典的 items方法的返回值本身就已經是元組加鍵值的形式, 所以不需要用 zip 也沒關係

然後 key 選取的時候沒法直接定位到目標, 所以使用匿名函式篩選

import

random

d =

print(d) #

print(d.keys()) #

dict_keys(['a', 's', 'd', 'c', 'f', 'g'])

print(d.values()) #

dict_values([74, 91, 90, 87, 83, 81])

d =list(zip(d.values(), d.keys()))

print(sorted(d)) #

[(74, 'a'), (81, 'g'), (83, 'f'), (87, 'c'), (90, 'd'), (91, 's')]

import

random

d =

print(d.items()) #

dict_items([('a', 100), ('s', 66), ('d', 92), ('c', 93), ('f', 69), ('g', 74)])

print(sorted(d.items(), key=lambda x: x[1])) #

[('s', 66), ('f', 69), ('g', 74), ('d', 92), ('c', 93), ('a', 100)]

寫了乙個字典樹

上星期寫了乙個鍊錶,寫的很艱難,跌跌絆絆。昨天我又試著寫了乙個單詞樹。這次順手多了,沒遇到什麼問題,非常順利,我也放棄了自定義結構體型別的寫法。將每一處結構體都用struct 寫。可能 不是非常簡潔高效,但是,目前測試功能正常。以後我會慢慢改進學習的。下面是完整 我準備放到我的期末作業裡面用。小愉悅...

python技巧 使用值來排序乙個字典

in 8 a in 9 import operator in 10 sorted a.items key operator.itemgetter 1 out 10 c 4 x 11 y 22 in 11 a in 12 sorted a.items key lambda x x 1 out 12 c...

python 使用值來排序乙個字典的方法

下面先看下python 使用值排序字典的方法 in 8 a in 9 import operator in 10 sorted a.items key operator.itemgetter 1 out 10 c 4 x 11 y 22 in 11 a in 12 sorted a.items ke...