按值对字典排序

时间:2020-06-14 11:09:35

标签: python sorting dictionary lambda dictionary-comprehension

sort_orders = sorted(orders.items(), key=lambda x: x[1], reverse=True)

有人可以解释key=lambda x: x[1]如何按值对字典进行排序吗?

1 个答案:

答案 0 :(得分:2)

dict.items()返回itemview对象。 就像这样:

dict_items([('key_1', 'val_1'), ('key_2', 'val_2'), ('key_3', 'val_3')])

因此,如果您传递此对象进行排序并以lambda x: x[1]的形式输入键参数,它将根据itemview内部每个元组的第一个索引对itemview对象进行排序。由于将反向参数设置为True

,它将进一步将该顺序设置为降序。

如果我尝试通过示例进行解释,请考虑以下问题:

orders={'order_1':'Pizza','order_2':'Chicken','order_3':'Lasagne'}

sort_orders = sorted(orders.items(), key=lambda x: x[1], reverse=True)

print(sort_orders) #1

print(orders.items()) #2

第一张照片为您提供:

[('order_1', 'Pizza'), ('order_3', 'Lasagne'), ('order_2', 'Chicken')]

#2版画为您提供:

dict_items([('order_2', 'Chicken'), ('order_1', 'Pizza'), ('order_3', 'Lasagne')])

访问this有关排序的python文档,以获取与排序相关的更多信息

希望这会有所帮助!