Python:基于元组值对字典进行排序。列表输出

时间:2017-04-27 01:45:52

标签: python sorting dictionary

我想根据一个的元组值对字典进行排序。请考虑以下字典示例:

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 个答案:

答案 0 :(得分: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 :(得分: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])