a = [(2,3),(4,1),(2,8),(2,1),(3,4)]
如何遍历以下条件的列表
我可以使用Python进行排序,如下所示:
sorted(a, key=lambda d: d[0], reverse=True)
但如何使它像这样(伪代码):
if d[0] == d[0] then sort list by d[1] reverse
答案 0 :(得分:3)
sorted(..., key=lambda x: (x[0], -x[1]))
答案 1 :(得分:1)
伊格纳西奥的答案适用于看似OP需要的数字。如果无法将一元-
应用于要反转的字段,则可以使用Reversinator
例如
class Reversinator(object):
def __init__(self, obj):
self.obj = obj
def __lt__(self, other):
return other.obj < self.obj
a = [(2,'3'),(4,'1'),(2,'8'),(2,'1'),(3,'4')]
print sorted(a, key=lambda x: (x[0], Reversinator(x[1])))