我有一个类,其中有一个字段是numpy数组。该类的实例在列表中。我想按照这些数组对列表进行排序。我该如何做到这一点?
简化版:
简化版:
class DataObject:
def __init__(self, location):
self.loc = location
do1 = DataObject(array([4.0, 5.0, 6.0]))
do2 = DataObject(array([1.0, 2.0, 3.0]))
do3 = DataObject(array([1.0, 8.0, 9.0]))
dos = [do1, do2, do3]
sorted_dos = awesome_sort(dos)
我希望sorted_dos
里的排序顺序为do2、do3和do1。
如何在不更改DataObject
的情况下,优雅且无bug地实现awesome_sort()
呢?
a1 = array([1.0, 5.0, 0.0]); a2 = array([1.0, 8.0, 9.0]); a3 = array([1.0, 5.0, 9.0]); a = [a1, a2, a3]; sorted(a)
- Make42tuple
包裹在x.loc
周围。 - Jamesdef __repr__(self): return "<DataObject loc: {}, {}, {}>".format(*self.loc)
。 - JamestoString()
相同? - Make42__repr__
方法决定了在对象被引用输出时显示的内容。__str__
方法决定了当对象从str
或print
调用时显示的内容。 - James