gpt4 book ai didi

python - 如何按列表中的多个项目从最高到最低对列表进行排序?

转载 作者:行者123 更新时间:2023-11-28 19:55:10 25 4
gpt4 key购买 nike

老实说,真的很难解释我正在尝试做什么,因为我想不出可以帮助我描述它的词。无论如何,问题是我想对列表列表进行排序:

[['a', [10, 6, 5]], ['b', [7, 4, 2]], ['c', [10, 6, 4]], ['d', [7, 3, 2]]]

这是我要排序的列表示例。字符串是学生姓名,其中包含三个整数的列表是分数。我想使用分数将此列表从最高到最低排序,但我想对其进行排序,以便如果两个列表具有相同的第一个整数(例如):

[7, 4, 2] and [7, 3, 2]

然后它应该决定哪个应该比下一个整数高。我尝试了许多不同的方法,但从我尝试过的方法来看,它们都不起作用。也很难找到答案,因为我不知道如何解释我的问题,尽管我希望我上面所说的已经对我的问题给出了足够的解释。

我的代码,如果你需要看的话: MY CODE

最佳答案

您可以使用sorted 函数的key 参数,并按每个子列表的第二个元素排序。这将为每个子列表从元素 0 到元素 N 排序。而 reverse 参数是这样你就可以从高到低排序(而不是默认的从低到高)

>>> l = [['a', [10, 6, 5]], ['b', [7, 4, 2]], ['c', [10, 6, 4]], ['d', [7, 3, 2]]]
>>> sorted(l, key = lambda i: i[1], reverse=True)
[['a', [10, 6, 5]], ['c', [10, 6, 4]], ['b', [7, 4, 2]], ['d', [7, 3, 2]]]

正如@ThiefMaster 指出的那样,您还可以将 lambda 替换为 operator.itemgetter(1) 作为关键参数。

关于python - 如何按列表中的多个项目从最高到最低对列表进行排序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29901913/

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