gpt4 book ai didi

python - 如何根据列表中元组的第二个元素的总和对列表进行排序?

转载 作者:行者123 更新时间:2023-12-03 23:26:17 24 4
gpt4 key购买 nike

我的关注涉及我的一个变量,它在列表中包含元组,如下所示。

test = [(['a','b','c'],[3,2,5]),(['d','e','f'],[1,5,6]),(['g','h','j'],[1,2,4])]
我正在尝试获取列表的第二个元组元素的总和,例如 [3,2,5]并根据该总和对它们进行排序。所以求和的结果应该是。
result1 = [(['a','b','c'],[10]),(['d','e','f'],[12]),(['g','h','j'],[7])]
那么我预期的最终结果应该按降序排序。
result = [['d','e','f'],['a','b','c'],['g','h','j']]

最佳答案

优雅的单衬:

result = [a for a, b in sorted(test, key = lambda x : sum(x[1]), reverse=True)]
sorted使用传递的可迭代对象返回一个排序列表,在本例中 test key定义排序的基础。这是一个 lambda 表达式,它采用元组 x并返回元组第二部分的总和 sum(x[1]) reverse设置为按降序排序
最后,我们使用列表推导式去除数字部分 b并且只保留字母 a

关于python - 如何根据列表中元组的第二个元素的总和对列表进行排序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65696538/

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