我很难找到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)
复杂度),因为你只需要一个值。最快的是使用max
(O(n)
复杂性),因为你的结构遵循自然顺序。
>>> max(x)
((142163, (0, 160, 128)), 1)
max
还接受一个key
参数,用于更复杂的排序案例。关于python - 如何在Python中对对象进行排序,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/58904608/