我不知道这种类型的排序存在确切的术语。问题来了——
我有一个类(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/

10-16 02:11