07 Июл 2023
2 мин
3620

Сортировка списка по нескольким атрибутам в Python

Сортировка данных — одна из самых распространенных задач в программировании. В Python есть встроенная функция sorted(), которая позволяет сортировать

Содержание

Сортировка данных — одна из самых распространенных задач в программировании. В Python есть встроенная функция sorted(), которая позволяет сортировать данные по одному атрибуту. Например, представьте, что у вас есть список списков:

data = [[5, 'Алексей', 'синий'],
        [3, 'Виктор', 'красный'],
        [7, 'Алексей', 'желтый']]

Можно отсортировать этот список по имени, используя функцию sorted() и itemgetter() из модуля operator:

from operator import itemgetter

sorted_data = sorted(data, key=itemgetter(1))

Но что делать, если нужно отсортировать список по нескольким атрибутам, например, по имени и цвету одновременно?

Сортировка по нескольким атрибутам

В Python, функция sorted() может принимать в качестве ключа кортеж. Это означает, что можно отсортировать список по нескольким атрибутам, просто передав их в качестве ключа в виде кортежа. Вернемся к предыдущему примеру и отсортируем его по имени и цвету:

from operator import itemgetter

sorted_data = sorted(data, key=itemgetter(1, 2))

Так, список будет сначала отсортирован по имени, а затем, внутри каждой группы с одинаковыми именами, по цвету. Это позволяет очень просто и эффективно сортировать данные по нескольким атрибутам одновременно.

Заключение

В Python, сортировка данных по нескольким атрибутам — это просто и эффективно. Используя функцию sorted() и itemgetter() из модуля operator, можно легко отсортировать список по любому количеству атрибутов, просто передав их в качестве ключа в виде кортежа. Это делает Python мощным инструментом для обработки и анализа данных.

Содержание

Добавить комментарий

Определи профессию по рисунку