gpt4 book ai didi

python - 对多个键上的元组列表进行排序

转载 作者:行者123 更新时间:2023-11-28 20:47:24 24 4
gpt4 key购买 nike

我想对元组列表进行排序,其中元组的类型为 (a, b),其中 ab 是整数。排序列表的关键应该是 ab 之间的区别,即 a - b 并且为了打破联系,它应该排序 a,均按降序排列。

我试过用这个:

def sort(list):
scores = sorted(list, key=lambda list: list[0], reverse=True)
scores = sorted(list, key=lambda list: (a - b), reverse=True)

但这似乎是对差异进行排序,并对在元组的第一个元素上排序的元素重新排序。

例如:

输入:

[(75, 10),  (88, 4), (93, 9), (80, 5), (94, 10)]

预期输出:

[(94, 10), (93, 9), (88, 4), (80, 5), (75, 10)]

得到的输出:

[(93, 9), (88, 4), (94, 10), (80, 5), (75, 10)]

最佳答案

您可以按复合键排序:

>>> def sort(list):
... return sorted(list, key=(lambda (a, b): ((a - b), a)), reverse=True)
...
>>> sort([(75, 10), (88, 4), (93, 9), (80, 5), (94, 10)])
[(94, 10), (93, 9), (88, 4), (80, 5), (75, 10)]

参见 Python Wiki Sorting Howto一些不错的提示。

关于python - 对多个键上的元组列表进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18815482/

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