我很难找到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并返回其关联元素(0160128)?
非常感谢你!

最佳答案

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

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

max还接受一个key参数,用于更复杂的排序案例。

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

10-09 09:35