`functools.cmp_to_key` не работает при сравнении задачи с двумя кортежами.Python

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 `functools.cmp_to_key` не работает при сравнении задачи с двумя кортежами.

Сообщение Anonymous »

Для cmp_to_key(fn) я читал в документации, что fn(a,b) должна возвращать -1, если a должен идти раньше b > и 0 равны, и 1, если a должен идти после b в порядке.
У меня есть этот ввод< /p>

Код: Выделить всё

smith 20
jones 15
jones 20
который я храню как кортеж, поэтому у меня есть компаратор, и я хочу сортировать оценки по баллам (2-й столбец) в убывающем порядке и сортировать по имени (1-й столбец) ) в возрастающем порядке.

Код: Выделить всё

def comparator(a, b):
if a[1] > b[1]:
return -1
if a[0] < b[0]:
return -1
if (a[0] == b[0]) and (a[1] == b[1]):
return 0
return 1
и я иду

Код: Выделить всё

sorted(data, key=cmp_to_key(comparator))
Но вот что я получаю

Код: Выделить всё

jones 20
jones 15
smith 20
что неверно. Где я не понимаю функцию cmp_to_key?

Подробнее здесь: https://stackoverflow.com/questions/627 ... le-problem
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Python»