gpt4 book ai didi

python - 根据内部列表的第 N 个元素的总和对列表的列表的列表进行排序

转载 作者:行者123 更新时间:2023-12-01 01:43:38 25 4
gpt4 key购买 nike

如果我有:

a = [[['Q1', 20], ['R1', 14]], [['Q2', 18], ['R2', 17]], [['Q3', 24], ['R1', 14]]]

如何对a进行排序,以便得到:

[[['Q3', 24], ['R1', 14]], [['Q2', 18], ['R2', 17]], [['Q1', 20], ['R1', 14]]]

因为这些元组中列表的第二个元素的总和分别为 38、35 和 34(在第二个排序版本中)?另外,必须有一种更好的方法来组织这一切,因此我们很乐意接受有关此方面的建议!

最佳答案

您可以将sortedsum一起使用:

a = [[['Q1', 20], ['R1', 14]], [['Q2', 18], ['R2', 17]], [['Q3', 24], ['R1', 14]]]
new_a = sorted(a, key=lambda x:sum(c for _, c in x), reverse=True)

输出:

[[['Q3', 24], ['R1', 14]], [['Q2', 18], ['R2', 17]], [['Q1', 20], ['R1', 14]]]

编辑:要删除总和大于指定变量的值的列表,您可以使用列表理解:

final_result = [i for i in new_a if sum(c for _, c in i) < 36]

输出:

[[['Q2', 18], ['R2', 17]], [['Q1', 20], ['R1', 14]]]

关于python - 根据内部列表的第 N 个元素的总和对列表的列表的列表进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51623355/

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