以我的理解,您想按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])代替
x[1]。
我的键函数返回一个元组,因为Python正确地对包含多个元素的元组进行了排序:
>>> sorted([(1,2), (1,1), (1,-1), (0,5)])[(0, 5), (1, -1), (1, 1), (1, 2)]



