2017-04-27 85 views
2

我想基於一個的元組值來對字典進行排序。請看下面的字典例如:Python:基於元組值對字典進行排序。列表輸出

my_dict = {"apple": (8, 1023), "ant": (3, 29883), "zebra": (4, 489)} 

說我想基於在apple鍵的情況下,元組值的第一個指標進行排序,那將是數8.所以我希望我的輸出要

["ant", "zebra", "apple"] 

我知道我可以使用類似

x = sorted(my_dict, key = my_dict.get) 

但你可以猜測,這並不爲元組/列表值工作。任何幫助,將不勝感激!

+2

'鍵=拉姆達K:my_dict [K] [某些指數]'? – Ryan

+1

當我運行它時,此代碼的工作原理與您想要的完全相同。 –

回答

5

這個什麼:

>>> my_dict = {"apple": (8, 1023), "ant": (3, 29883), "zebra": (4, 489)} 
>>> sorted(my_dict,key=lambda k: my_dict[k][0]) 
['ant', 'zebra', 'apple'] 
1

不知道,如果你找到了答案,但下面的代碼將返回你的字典由tuple[0]排序:

sorted_dict = [] 
my_dict = {"apple": (8, 1023), "ant": (3, 29883), "zebra": (4, 489)} 
my_dict_copy = sorted(my_dict.items(),key=lambda x: x[1][0]) 
for i in my_dict_copy: 
    sorted_dict.append(i[0]) 
相關問題