您可以对数组进行排序myclass
通过使用key
论证sorted
功能:
sortedlist = sorted(myclasses, key=lambda obj: obj.myproperty)
有没有办法为我们的班级定义自然顺序?也许有一些神奇的方法可以让我们不必每次都传递密钥?
e.g.,
class myclass:
def __init__(self,a,b):
self.key1 = a
self.key2 = b
def __sortkey__(self):
return self.key2
或者如果我们定义它自然会起作用__le__
也许?
此外__cmp__
,也可以用所谓的“丰富的比较运算符”来做到__eq__
, __le__
, __lt__
, __gt__
, and __ge__
。您可以使用functools.total_ordering http://docs.python.org/library/functools.html#functools.total_ordering2.7+/3.1+ 中的类装饰器。__cmp__
在 3.x 中消失了。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)