У меня есть два экземпляра объекта в спискеКаков наилучший способ сортировки элементов на один из элементов значения
class Thing():
timeTo = 0
timeFrom = 0
name = ""
o1 = Thing()
o1.name = "One"
o1.timeFrom = 2
o2 = Thing()
o2.timeTo = 20
o2.name = "Two"
myList = [o1, o2]
biggestIndex = (myList[0].timeFrom < myList[1].timeTo) & 1
bigger = myList.pop(biggestIndex)
lesser = myList.pop()
print bigger.name
print lesser.name
как o1 и o2 имеют два свойства, которые я хочу, чтобы сравнить первый в перечисляет timeFrom свойство и второе timeTo свойство eachother.
Я чувствую, что это немного неудобно и странно, возможно ли, что это лучший и читаемый подход?
@Justin Ardini: Это свойство метрики, определенной OP. o1 и o2 просто не сортируются в этом случае. –
Если у вас есть 'o1.timeFrom> = o2.timeTo' и' o2.timeFrom> = o1.timeTo', и вы хотите, чтобы это 'o1.timeFrom <= o1.timeTo' (что очень разумно, учитывая имена переменных) это означает (сделайте математику!), что 'o2.timeFrom> = o2.timeTo' ... и это не имеет смысла! –
Отлично! Я закончил писать сортировщик и использовал его в качестве ключевого аргумента для сортированной функции, спасибо! – Joelbitar