我不知道这种类型的排序存在确切的术语。问题来了——
我有一个类(class) foo
class foo:
def __init__(self,a1,a2):
self.attrb1 = a1
self.attrb2 = a2
def sort(self):
return self.attrb1
数组“bar”包含 foo 类型的对象。我想根据这两个属性按降序对数组进行排序。首先由
attrb1
bar.sort(key=foo.sort,reverse=True)
然后我想根据
attrb2
对自己内部的排序元素进行排序。所以对于数组中的两个元素 foo1 和 foo2 我们有 -foo1 > foo2
if foo1.attrb1 > foo2.attrb1
elif foo1.attrb1 == foo2.attrb1
foo1.attrb2 > foo2.attrb2
我怎样才能做到这一点?
最佳答案
bar.sort(key=lambda x: (x.attrb1, x.attrb2), reverse=True)
而且你不需要定义
foo.sort
关于python - 如何在数组内执行双重排序?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/4768151/