以我的理解,您想按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)]
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)