python - python3按字典值的属性对字典列表进行排序
问题描述
我有一个存储在part_results
这样的字典列表:
[{'Pad': FAILED! 69% Pad in BF1, serf = 12.06 ≤ 17.4.},
{'Pipe': FAILED! 196% Pipe in BF1, pmax = 205.38 ≤ f_pipe_ = 104.67 MPa.},
{'Foot plate': FAILED! 89% Foot plate in BF1, serf = 34.90 ≤ 39.1.}]
dicts 的值是具有“利用率”属性的精美打印对象(始终是单个对象);这些是打印中的百分比值。
我想让列表按利用率值排序,但我很难找出如何以 Python 方式访问每个 dict 的值。
输出将是
[{'Pipe': FAILED! 196% Pipe in BF1, pmax = 205.38 ≤ f_pipe_ = 104.67 MPa.},
{'Foot plate': FAILED! 89% Foot plate in BF1, serf = 34.90 ≤ 39.1.},
{'Pad': FAILED! 69% Pad in BF1, serf = 12.06 ≤ 17.4.}]
我的第一次尝试是这样的
sorted(part_results, key=lambda x: part_results)
这显然不是我想要的:它将按 dict 键排序。我知道,实现这一点不需要排序键,但是 lambda 是访问循环内字典的值所必需的 - 我该怎么做?
解决方案
鉴于每个 中始终有一个键值对dict
,您可以尝试:
sorted(part_results, key=lambda d: list(d.values())[0].utilisation)
utilisation
这会根据它们各自的第一个(也是唯一的)值的属性对字典列表进行排序。
推荐阅读
- mysql - 从列而不是主键中选择最大值的正确方法是什么
- javascript - 通过 props 设置 2 个 classNames
- c++ - 编译后 CMake 共享 dll 不起作用
- android - Soti Surf 作为 Okta Android SDK 支持的浏览器
- php - 尝试将 api 与 react native 连接
- javascript - 向下推元素以填充剩余的垂直空间
- html - 绑定到 class 和 id 时,悬停不起作用
- javascript - 尝试使用 javascript 上的 if 语句创建年龄限制
- google-analytics - 为什么我的 Google Analytics API 查询恰好返回 1.000.000 行?
- python - 如何将 pandas df 转换为复杂的 json 结构?