我不知道这种排序的确切术语.这是问题 - 我有一堂课foo
class foo:
def __init__(self,a1,a2):
self.attrb1 = a1
self.attrb2 = a2
def sort(self):
return self.attrb1
Run Code Online (Sandbox Code Playgroud)
数组"bar"包含foo类型的对象.我想根据这两个属性按降序对数组进行排序.首先attrb1
bar.sort(key=foo.sort,reverse=True)
Run Code Online (Sandbox Code Playgroud)
然后我想根据自己对排序后的元素进行排序attrb2.因此,对于数组中的两个元素foo1和foo2,我们有 -
foo1 > foo2
if foo1.attrb1 > foo2.attrb1
elif foo1.attrb1 == foo2.attrb1
foo1.attrb2 > foo2.attrb2
Run Code Online (Sandbox Code Playgroud)
我怎样才能做到这一点?
bar.sort(key=lambda x: (x.attrb1, x.attrb2), reverse=True)
Run Code Online (Sandbox Code Playgroud)
而且你不需要定义 foo.sort