python - 如何在 Python 中对对象进行排序

标签 python sorting

我很难找到 list.sort 命令的正确语法来从数组中获取正确的最大值。我有以下对象列表:

[((6, (192, 96, 128)), 1), ((49, (128, 32, 64)), 1), ((2, (128, 96, 0)), 1),
 ((4, (160, 160, 160)), 1), ((41977, (64, 160, 160)), 1), ((1787, (128, 32, 128)), 1),
 ((8, (128, 96, 160)), 1), ((1, (192, 96, 160)), 1), ((14381, (0, 0, 32)), 1),
 ((2, (64, 96, 64)), 1), ((9, (192, 128, 160)), 1), ((410, (64, 32, 64)), 1),
 ((75, (192, 160, 96)), 1), ((6, (96, 0, 32)), 1), ((142163, (0, 160, 128)), 1),
 ((2468, (224, 192, 64)), 1), ((95, (64, 0, 32)), 1), ((224, (0, 128, 160)), 1),
 ((57, (96, 32, 32)), 1), ((40, (160, 96, 64)), 1)]

我想对其进行排序,以便我选择最高值:((142163, (0, 160, 128)), 1)

谁能帮我构建一个命令,要么按降序对列表进行排序,要么获取 142163 的 max() 值并返回其关联元素 (0,160,128)?

非常感谢!

最佳答案

在您的情况下,您不需要排序 (O(log(n)*n) complexity) 因为您只需要一个值。最快的方法是使用 max(O(n) 复杂度),因为结构的顺序遵循自然顺序

>>> max(x)
((142163, (0, 160, 128)), 1)

max 还接受一个 key 参数用于更复杂的排序情况。

关于python - 如何在 Python 中对对象进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58904608/

相关文章:

python - 如何从函数返回两个值,然后将它们用作另一个函数的参数中的参数作为两个参数

java - Java 应用程序中的计数排序和使用

java - 有效地测试数组成员资格

python - python中多个条件的if then else语句

python - 为什么 `conda update --all`没有全部更新?

python - 查找 Redis 中值最高的前 N ​​个键

python - 如何避免由缩进引起的记录器文件中的额外空格

javascript - 如何在 Javascript 中按字母顺序对这个数组进行排序?

list - 如何按给定顺序对列表进行排序?

arrays - 使数组排序的最小操作数