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中做这样的事情的最佳方法是什么?
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)