2024-03-29 12:03:56 发布
网友
我有一个嵌套元组的列表:
[(a, (b, c)), ...]
现在我想选择一个元素,它可以同时最小化b和c。例如
胜利者应该是
(7, (4, 1))
感谢任何帮助。在
>>> max(lst, key=lambda x: (x[0], -x[1][0], -x[1][1])) (7, (4, 1))
在我的理解中,你想按a递减排序,按b递增排序,然后按c排序。如果这是对的,你可以这样做:
>>> l=[(7, (5, 1)), (7, (4, 1)), (6, (3, 2)), (6, (3, 1))] >>> sorted(l, key = lambda x: (-x[0], x[1])) [(7, (4, 1)), (7, (5, 1)), (6, (3, 1)), (6, (3, 2))]
选择“赢家”就像选择第一个元素一样简单。在
如果要对b和c进行总结,那么在我的示例中,它将只是sum(x[1]),而不是{}。在
sum(x[1])
我的key函数返回一个元组,因为Python正确地对包含多个元素的元组进行排序:
在我的理解中,你想按a递减排序,按b递增排序,然后按c排序。如果这是对的,你可以这样做:
选择“赢家”就像选择第一个元素一样简单。在
如果要对b和c进行总结,那么在我的示例中,它将只是}。在
sum(x[1])
,而不是{我的key函数返回一个元组,因为Python正确地对包含多个元素的元组进行排序:
^{pr2}$相关问题 更多 >
编程相关推荐