Разрыв связей в сортировке Python

У меня есть list tuple s, каждый кортеж содержит два целых числа. Мне нужно отсортировать список (в обратном порядке) в соответствии с разницей целых чисел в каждом кортеже, но разрыв связей с большим первым целым числом.

пример

Для [(5, 6), (4, 1), (6, 7)] следует получить [(4, 1), (6, 7), (5, 6)] .

Мой путь

Я уже решил это, сделав dictionary который содержит разницу в качестве key и кортежа как value . Но все это немного неуклюже.

Что лучше?

One Solution collect form web for “Разрыв связей в сортировке Python”

Используйте key функцию для sorted() и возврата кортежа; значения будут отсортированы лексикографически:

 sorted(yourlst, key=lambda t: (abs(t[0] - t[1])), t[0]), reverse=True) 

Я использую abs() здесь, чтобы вычислить разницу, независимо от того, какой из двух целых чисел больше.

Для ввода образца введите ключ (1, 5) , (3, 4) и (1, 6) ; в обратном порядке, что ставит (1, 6) (для (6, 7) кортежей) до (1, 5) (что соответствует (5, 6) ).

Демо-версия:

 >>> yourlst = [(5, 6), (4, 1), (6, 7)] >>> sorted(yourlst, key=lambda t: (abs(t[0] - t[1]), t[0]), reverse=True) [(4, 1), (6, 7), (5, 6)] 
  • отменить или отменить argsort (), python
  • Python Pandas нарезает мультииндекс индексом второго уровня (или любым другим уровнем)
  • Сортировка чисел в строчном формате с помощью Python
  • Самый быстрый способ сортировки в Python
  • Алгоритм сортировки для разделения равных значений
  • Ранжирование массива numpy с возможными дубликатами
  • Слияние и сортировка файлов журнала в Python
  • Сортировка на разных уровнях в Python
  • Сортировка кортежей в python на основе их значений
  • Python: сортировка списка зависимостей
  • Сортировка списка строк на основе номера в строке
  •  
    Interesting Posts for Van-Lav

    Правильный способ эмулировать одинаковую точку с плавающей запятой в python?

    Результаты sys.getsizeof () не совсем коррелируют с размером структуры

    Python – abs vs fabs

    Неопределенное глобальное выражение в генераторе списков с использованием python3 работает с python2, какие изменения необходимы?

    Numpy Добавление двух векторов разных размеров

    Python Numpy.dot работает в 20 раз медленнее после обновления Ubuntu до 13.10 от 13.04

    Установка Numpy на Fedora 19 с помощью pip

    Как я могу создать свой собственный корпус в наборе инструментов Natural Language Python?

    Как я могу добавить путь по умолчанию для поиска файлов сценариев python?

    Введите многострочную строку в python

    Поиск расчета, которое генерирует NaN

    Экстраполировать с помощью LinearNDInterpolator

    Добавить строку в определенной позиции в Python

    Каков питонический способ использования геттеров и сеттеров?

    Как получить список объектов ObjectId с помощью pymongo?

    Python - лучший язык программирования в мире.