我想根据一个的元组值对字典进行排序。请考虑以下字典示例:
my_dict = {"apple": (8, 1023), "ant": (3, 29883), "zebra": (4, 489)}
假设我想根据元组值中的第一个索引对它进行排序,在apple
键的情况下,它将是数字8。所以我希望我的输出为
["ant", "zebra", "apple"]
我知道我可以使用像
这样的东西 x = sorted(my_dict, key = my_dict.get)
但是你可以猜到,这对于元组/列表值不起作用。任何帮助将不胜感激!
答案 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])