Не сортируется массив в Python

Мне нужно отсортировать массив с несколькими математическими конструкциями при помощи самописного компаратора, но почему-то ни функция sort ни функция sorted не работают. При этом, это не зависит от компаратора, какой бы он ни был, результат один, порядок массива остается таким же, каким он был изначально. Еще стоит отметить, что почему-то не работает именно функция cmp_to_key, потому что sort с обычным ключом все сортирует, а с любым компаратором - нет. Я не знаю как это исправить.

from functools import cmp_to_key
import math


def compare_towers(t1, t2):
    d = 1
    p = 1
    k = 1
    
    for i in range(9, -1, -1):
        if k + 1 / k > 10:
            break
        
        p = math.pow(d, p)
        d = t2[i]
        k = math.pow(t1[i], k) / d
        
        if p > 99:
            if k > 1.1:
                return 1
            if k < 0.9:
                return 0
        
        k = abs(k - 1) > 1e-10 and math.pow(k, p) or 1
    
    return k > 1


def main():
    n = int(input())
    towers = []
    
    for i in range(n):
        k, *a_values = map(int, input().split())
        towers.append(a_values + [1] * (9 - k) + [i])
    
    towers.sort(key=cmp_to_key(compare_towers))

    print(*sorted(towers, key=cmp_to_key(compare_towers)))
    
    result = [tower[10] + 1 for tower in towers]
    print(*result)


if __name__ == "__main__":
    main()

При таком вводе в программу

10
4 2 2 2 2 2
1 2 2
1 3 2
1 2 3
3 2 2 2 2
2 2 2 2
1 3 3
3 3 3 3 3
2 4 3 3
2 2 3 4

Ожидаемый результат такой:

2 4 3 6 7 5 9 10 1 8

А выдается:

1 2 3 4 5 6 7 8 9 10

Ответы (1 шт):

Автор решения: zolars

Я понял, проблема в том, что компаратор должен возвращать числа, а не булеаны, заменил > на - - все заработало

→ Ссылка