python - 根据某些属性的总和对 python 中的对象列表进行排序

标签 python list sorting attributes

我找到了this question过去相当有帮助,但这次我需要根据列表中的某些对象的某些属性的总和对它们进行排序。

具体来说,我有一个对象列表,每个对象在 3 个轴上都有尺寸属性(例如:obj.dimensions.x)

我知道您可以使用以下方法按一个属性对列表进行排序:

list.sort(key=lambda obj: obj.dimensions.x)

但是我如何根据每个对象三个轴的尺寸总和对其进行排序,以便尺寸为 3,3,3 的对象排在尺寸为 5,1,1(更大总和)的对象之前?

最佳答案

由于示例中的 obj 是整个对象,因此您可以执行以下操作:

lst.sort(key=lambda obj: obj.dimensions.x+obj.dimensions.y+obj.dimensions.z)

list 对于变量来说是一个糟糕的名称,因为它也是内置 list() 函数的名称。

关于python - 根据某些属性的总和对 python 中的对象列表进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18636957/

相关文章:

python - 对元组列表的元素进行算术并检测所需的成对组合

list - 访问 Ziplist 中的位置

python - 列表列表更改意外地反射(reflect)在子列表中

java - 尝试对 .txt 文件中的 double 进行排序时遇到问题

python - 在 Python 或 R 中,是否有更有效(通用)的方法来查找给定区间内函数的 arg max ?

python - FTPES - 在 Python 中通过显式 TLS/SSL 的 FTP

python - 如何使用 spaCy 获取依赖树?

python将文件上传到与我共享的谷歌驱动器文件夹

bash - 在 bash 中按日期排序文件列表

sorting - 自然mergesort链表