我有一个类实例列表 -
x = [<iteminstance1>,...]
Run Code Online (Sandbox Code Playgroud)
除了其他属性之外,该类具有score属性.如何根据此参数按升序对项目进行排序?
编辑:list在python中有一些东西叫做sort.我可以在这里用吗?如何指示此函数使用我的score属性?
kin*_*all 142
除了您接受的解决方案之外,您还可以__lt__()在类上实现特殊("小于")方法.然后,sort()方法(和sorted()函数)将能够比较对象,从而对它们进行排序.但是,当您只对这个属性进行排序时,这种方法效果最佳.
class Foo(object):
def __init__(self, score):
self.score = score
def __lt__(self, other):
return self.score < other.score
l = [Foo(3), Foo(1), Foo(2)]
l.sort()
Run Code Online (Sandbox Code Playgroud)
Ned*_*der 95
import operator
sorted_x = sorted(x, key=operator.attrgetter('score'))
Run Code Online (Sandbox Code Playgroud)
如果您想要就地排序x,您还可以:
x.sort(key=operator.attrgetter('score'))
Run Code Online (Sandbox Code Playgroud)