2017-04-27 57 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]) 
相关问题