gpt4 book ai didi

python - 如何在 Python 中对嵌套列表的外部和内部子列表进行排序?

转载 作者:行者123 更新时间:2023-11-28 23:01:18 25 4
gpt4 key购买 nike

首先,如果这太天真了,我深表歉意(我是初学者)。我有以下类型的列表列表,我想首先按内部列表的最后一个成员按升序排序:

data =  [[1, .45, 0], [2, .49, 2], [3, .98, 0], [4, .82, 1], [5, .77, 1], [6, .98, 2] ]

我通过使用:sorted(data,key=operator.itemgetter(2),reverse = True) 来实现这一点,这给了我:

[[1, .45, 0], [3, .98, 0],[4, .82, 1], [5, .77, 1], [2, .49, 2], [6, .98, 2]]

现在,我想在子列表中进行排序,即首先使用中间成员作为键,将最后一个成员为“0”的列表按降序排序。然后以“1”作为最后一个成员对子列表进行排序,依此类推。请注意,每个子列表中的元素数量不同且未知。最终列表应如下所示:

[[3, .98, 0],[1, .45, 0], [4, .82, 1], [5, .77, 1], [6, .98, 2],[2, .49, 2] ]

这个列表实际上非常庞大,因此我正在寻找一个高效的实现。任何指导将不胜感激!

最佳答案

>>> data =  [[1, .45, 0], [2, .49, 2], [3, .98, 0], [4, .82, 1], [5, .77, 1], [6, .98, 2] ]
>>> sorted(data, key=lambda x:(x[2], -x[1]))
[[3, 0.98, 0], [1, 0.45, 0], [4, 0.82, 1], [5, 0.77, 1], [6, 0.98, 2], [2, 0.49, 2]]

您可以根据需要向 lambda 添加额外的项

关于python - 如何在 Python 中对嵌套列表的外部和内部子列表进行排序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11219770/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com