Курс 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. Измерение времени выполнения кода
  3. Вычисление фазы комплексного числа
  4. Вычисление разности множеств в Python
  5. Python Метод sleep() из time
  6. Получение ID процесса
  7. Переопределение метода divmod
  8. IPython и Jupyter Notebook: руководство
  9. Замыкания в Python
  10. Безопасные SQL-запросы в Python 3.11
  11. Подсказки типов в Python
  12. Слияние словарей в Python 3.9
  13. Декораторы в Python
  14. Работа со строками
  15. Форматирование строк в Python
  16. Гибкие функции Python
  17. Настройка шрифта и цвета в Tkinter
  18. Объединение списков в Python.
  19. Добавление элементов в список
  20. Повторение элементов в Python
  21. Декораторы в Python
  22. Транспонирование 2D-массива с помощью zip
  23. Python reversed() функция
  24. Работа с датой и временем в Python
  25. Создание новых списков в Python
  26. Добавление цвета в консоли
  27. Создание даты из строки ISO
  28. Удаление символа из строки
  29. Форматирование заголовков в Python
  30. Срезы в Python
  31. Работа с путями в Python
  32. Доступ к локальным переменным
  33. Цикл for с enumerate() в Python
  34. Команда %dhist — список посещенных каталогов
  35. Проверка наличия элемента в списке
  36. Измерение времени выполнения кода
  37. Метод setdefault() в Python
  38. Обработка ошибок в Python
  39. Mad Libs Generator
  40. Python: отсутствие точек с запятыми
  41. Создание класса в Python
  42. Поиск повторов в списке
  43. Основные методы NumPy
  44. Сравнение неупорядоченных списков
  45. Списки в Python
  46. Блок else в циклах.
  47. Создание словаря через dict comprehension
  48. Стать Python-разработчиком
  49. Метод __int__ в Python

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