用对象和排序填充列表(新手)

Pet*_*ang 0 python sorting list object

我是Python的新手,所以在使用错误的条款时请原谅我:)

我想列出几个"对象",每个对象都有相同的数字属性(A,B,C).然后应该按属性A的值对该列表进行排序.

在Java中,我将我的属性定义为一个Class作为成员,实现Sortable来比较A,将它们全部放在某种List中,然后Collections.sort对我的列表进行排序.

结果应该"看起来"像这样:

A   B   C
1   2   3
1   2   4
2   5   1
3   1   1
Run Code Online (Sandbox Code Playgroud)

在Python中做这样的事情的最佳方法是什么?

Joh*_*rra 6

class myclass(object):
    def __init__(self, a, b, c):
        self.a = a
        self.b = b
        self.c = c

    def __repr__(self):
        return "(a=%s, b=%s, c=%s)" % (self.a, self.b, self.c)

>>> obj1 = myclass(1, 2, 3)
>>> obj2 = myclass(1, 2, 4)
>>> obj3 = myclass(2, 5, 1)
>>> obj4 = myclass(3, 1, 1)

>>> print sorted([obj1, obj2, obj3, obj4], key=lambda o: o.a)
[(a=1, b=2, c=3), (a=1, b=2, c=4), (a=2, b=5, c=1), (a=3, b=1, c=1)]
Run Code Online (Sandbox Code Playgroud)