2014-02-24 115 views
0
sorted_x = sorted(x.items(), key=lambda x: x[1]) 

這將字典x按第一個值排序。按第二個值對字典進行排序

我有一本字典這樣的:

x = {a:(1,2,3)} 

我想由元組的第2個值進行排序字典x。我怎麼做到這一點?

+0

是的,我知道字典不能進行排序,這簡直是對用戶閱讀。通過第二個值,我的意思是元組的第二個值,在示例字典中,它將是「2」。第一行按「1」排序。 – Brian

+0

你能否包括預期的輸出? – thefourtheye

+1

輕微:你的代碼沒有按「第一個值」排序(我假定你的意思是元組的第0個元素),它按整個元組排序。如果第0個元素不同,那是一樣的,但如果不是,它將訪問其他元素來打破關係。它是'lambda x:x [1]'和'lambda x:x [1] [0]'之間的區別。 – DSM

回答

4

與第一個例子的工作方式相同:sorted(x.items(), key=lambda x: x[1][1])

請注意,這與您的第一個示例一樣,將返回一個列表,而不是字典。作爲散列圖的字典不是有序的,不能排序。

0

你可以用一個小的修復這樣做是爲了表明項目的索引用於排序:

sorted_x = sorted(x.items(), key=lambda x: x[1][1])