python - 按值对字典进行排序
问题描述
sort_orders = sorted(orders.items(), key=lambda x: x[1], reverse=True)
有人可以解释如何key=lambda x: x[1]
按值对字典进行排序吗?
解决方案
dict.items()
返回 itemview 对象。它是这样的:
dict_items([('key_1', 'val_1'), ('key_2', 'val_2'), ('key_3', 'val_3')])
因此,如果您将此对象传递给 sorted 并放入 key 参数,因为lambda x: x[1]
它将根据 itemview 中每个元组的第一个索引对 itemview 对象进行排序。当 reverse 参数设置为 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 Print 为您提供:
[('order_1', 'Pizza'), ('order_3', 'Lasagne'), ('order_2', 'Chicken')]
#2 Print 为您提供:
dict_items([('order_2', 'Chicken'), ('order_1', 'Pizza'), ('order_3', 'Lasagne')])
有关排序的更多信息,请访问此python 文档
希望这可以帮助 !
推荐阅读
- swagger-ui - OpenAPI generator: wrong format for the example value of date datatype. Is it possible to customize?
- laravel - 如何使用 Laravel Query Builder 计算两个相关表?
- sorting - 如何使用 lodash 对每个日期字段的对象进行排序?
- jahia - 如何更改 Jahia 中的会话超时?
- java - 将矩阵中的排序合并到Java中的列表中
- python - 当两个列表都作为参数传递给函数时,无法将一个列表附加到另一个列表
- javascript - 调用包含在 jQuery AJAX 中的方法,该方法包含在同一类的方法中
- python-3.x - Dask DataFrame 将不符合要求的镶木地板文件索引从 datetime64 转换为对象,为什么?
- php - 我想在 CSS 中的 WordPress 中添加背景图片
- ios - 未找到 GoogleUtilities/GULSceneDelegateSwizzler.h 文件