gpt4 book ai didi

python - 通过添加元组的第二个和第三个元素对元组列表进行排序

转载 作者:太空宇宙 更新时间:2023-11-03 12:45:11 25 4
gpt4 key购买 nike

我有一个元组列表:

[('g', 10, 2), ('o', 6, 11), ('v', 2, 4), ('t', 1, 15), ('x', 40, 3), ('m', 4, 4), ('k', 10, 2), ('f', 14, 1), ('p', 70, 90), ('l', 21, 7), ('n', 1, 27), ('a', 39, 70), ('d', 11, 10), ('h', 21, 10), ('c', 10, 19), ('b', 8, 1), ('e', 30, 39), ('i', 23, 29), ('r', 8, 7), ('q', 2, 2), ('s', 18, 86)]

我正在苦苦思索如何对它们进行排序,以便它们可以像这样放置:

[('p', 70, 90), ('a', 39, 70), ('s', 18, 84), ('è', 27, 45), ('e', 30, 39), ('i', 23, 29), ('x', 40, 3), ('h', 21, 10), ('c', 10, 19), ('l', 20, 7), ('d', 11, 10), ('o', 6, 11), ('t', 1, 15), ('f', 14, 1), ('r', 8, 7), ('g', 10, 2), ('k', 10, 2), ('n', 1, 11), ('b', 8, 1), ('m', 4, 4), ('v', 2, 4), ('q', 2, 2)]

应该是元组的第二个和第三个元素相加,并且当它们相同时ex。 (a,10,9)(b,9,10) 它们应该按字母顺序排序。它是用 python 3.5 编写的,我不能调用任何库

最佳答案

您可以将元组设置为对列表进行排序的键:

sorted(lst, key = lambda x: (sum(x[1:]), x[0]))

这样,它会先按元组最后两个元素的和排序,然后按元组第一个元素排序。

如果您喜欢按降序排列的结果,正如@Moses 评论的那样,您可以将 reverse 参数指定为 True:

sorted(lst, key = lambda x: (sum(x[1:]), x[0]), reverse = True)

更新:要以不同方式处理降序、升序,因为此处的 sum 是数字,您也可以取反 sum。这样,sum 将按降序排序,但第一个字母将按字母顺序排序。

sorted(lst, key = lambda x: (-sum(x[1:]), x[0]))

关于python - 通过添加元组的第二个和第三个元素对元组列表进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40384599/

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