Для сортировки на месте вы можете использовать метод .sort
для list
, используя функцию, которая определяет ключ для сортировки.
>>> class Data(object):
... def __init__(self,x,y):
... self.x=x
... self.y=y
...
>>> l=[Data(i,i+1) for i in xrange(10,-1,-1)]
>>> print ", ".join("%s %s"%(x.x,x.y) for x in l)
10 11, 9 10, 8 9, 7 8, 6 7, 5 6, 4 5, 3 4, 2 3, 1 2, 0 1
>>> l.sort(key=lambda obj:obj.y)
>>> print ", ".join("%s %s"%(x.x,x.y) for x in l)
0 1, 1 2, 2 3, 3 4, 4 5, 5 6, 6 7, 7 8, 8 9, 9 10, 10 11
Чтобы получить еще один list
, оставив исходный без изменений, используйте функцию sorted
с необязательным параметром key
, определенным аналогично.