Курс Python → Сортировка данных в Python

Для обеспечения устойчивости сортировки в Python, необходимо выполнить несколько шагов. В данном случае, данные требуется отсортировать сначала по столбцу A по возрастанию, затем по столбцу B по убыванию, и, в заключение, по столбцу C снова по возрастанию. Если данные в столбце B представлены числами, то можно воспользоваться функцией в параметре key для изменения знака у элементов B, что позволит достичь нужного результата.

Однако, если все данные в столбце являются текстовыми, то также существует способ обеспечить устойчивость сортировки. В Python сортировка (sort) является устойчивой, начиная с версии 2.2, что означает, что порядок «одинаковых» элементов не изменяется. Таким образом, можно просто выполнить сортировку три раза по разным ключам, чтобы добиться желаемого результата.


data = [
    {'A': 1, 'B': 4, 'C': 'foo'},
    {'A': 2, 'B': 3, 'C': 'bar'},
    {'A': 3, 'B': 2, 'C': 'baz'},
    {'A': 4, 'B': 1, 'C': 'qux'}
]

# Сортировка по столбцу A по возрастанию
data.sort(key=lambda x: x['A'])

# Сортировка по столбцу B по убыванию
data.sort(key=lambda x: x['B'], reverse=True)

# Сортировка по столбцу C по возрастанию
data.sort(key=lambda x: x['C'])

Приведенный выше пример кода показывает, как можно использовать ключевой параметр sort для упорядочивания данных сначала по столбцу A, затем по столбцу B и, наконец, по столбцу C. При этом устойчивость сортировки обеспечивается за счет выполнения сортировки по каждому столбцу отдельно, что позволяет сохранить порядок «одинаковых» элементов.

Твои коллеги будут рады, поделись в

Автор урока

Дмитрий Комаровский
Дмитрий Комаровский

Автоматизация процессов
в КраснодарБанки.ру

Другие уроки курса "Python"

  1. Подсчет частотности элементов в Python
  2. Оператор zip в Python
  3. Создание и операции с дробями
  4. Копирование объектов в Python
  5. Объединение словарей в Python
  6. Получение текущей даты и времени с помощью datetime
  7. Выражения-генераторы в Python
  8. Оператор is в Python
  9. Группировка элементов в словарь
  10. Ускорение кода с помощью векторизации
  11. Добавление элементов в список: append() vs extend()
  12. Переменные класса и экземпляра
  13. Форматирование строк в Python
  14. Объединение словарей в Python
  15. Генераторы в Python
  16. Инверсия списков и строк в Python
  17. Метод join() для объединения строк
  18. Списки в Python
  19. Перезагрузка оператора в Python
  20. Генераторы данных
  21. Метод invert для побитового отрицания
  22. Имена объектов в Python
  23. Извлечение статей с newspaper3k
  24. Импорт и использование модулей в Python
  25. Вложенные генераторы в Python
  26. Установка и использование pyshorteners
  27. Замена переменных в Python
  28. Установка и использование Telegram API в Python
  29. Библиотека funcy: удобные утилиты
  30. Обработка ошибки IndexError
  31. Использование модуля __future__
  32. Использование модуля math
  33. Константы в модуле cmath
  34. Сокращение ссылок с pyshorteners
  35. Работа с CSV файлами
  36. Работа со стеком в Python
  37. Поиск элементов BeautifulSoup
  38. JSON-esque в Python
  39. Декораторы для регистрации функций
  40. Улучшенные подсказки для импорта в Python 3.12
  41. Аннотации типов в Python
  42. Подписка на @SelectelNews
  43. Отладка в Python
  44. Подсчет элементов в Python
  45. Работа со случайными элементами
  46. Конкатенация строк с join() в Python

Marketello читают маркетологи из крутых компаний