Я пытаюсь отсортировать список объектов по моим критериям.
Вот моя функция сортировки:
def sort_pots(self, pot1, pot2):
coeff1 = ((pot1.movable + pot1.convertible) / pot1.total)
coeff2 = ((pot2.movable + pot2.convertible) / pot2.total)
if coeff1 > coeff2:
return 1
elif coeff1 == coeff2:
return pot1.total - pot2.total
else:
return -1
Чего я хотел бы достичь:
если coeff1> coeff2, pot1 находится перед pot2
если coeff1 == coeff2, то тот, у которого наибольшее общее число, находится перед
иначе (coeff2> coeff1), pot2 предшествует pot2
и функция, похоже, не работает соответственно. У меня есть группа, заказанная в соответствии с итогом, но не с тем же коэффициентом.
Я (конвертируемый, подвижный, всего): 0, 0, 1 и позже 0, 3, 4 и затем 31, 228, 1584 и затем 1, 0, 1
Вот начало определения класса pot1 и pot2:
class Potential:
def __init__(self,conf_opt):
self.conf_opt = conf_opt
self.total = 0
self.movable = 0
self.convertible = 0
спасибо.