按值对字典进行排序

Sorting the dictionary by values

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

谁能解释一下 key=lambda x: x[1] 如何按值对字典进行排序?

dict.items() returns 项目视图对象。 它是这样的:

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

因此,如果您将此对象传递给 sorted 并将键参数作为 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

#1 打印给您:

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

#2 打印为您提供:

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

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

希望对您有所帮助!