Вебинары Разобраться в IT Реферальная программа
Программирование Аналитика Дизайн Маркетинг
07 Июл 2023
2 мин
9541

Сортировка словаря в Python по значению

В области программирования на языке Python часто возникает ситуация, когда необходимо отсортировать словарь по значению. Подобная задача может возникнуть,

Освойте Python на курсе от Skypro. Вас ждут 400 часов обучения и практики (достаточно десяти часов в неделю), подготовка проектов для портфолио, индивидуальная проверка домашних заданий и помощь опытных наставников. Получится, даже если у вас нет опыта в IT.

В области программирования на языке Python часто возникает ситуация, когда необходимо отсортировать словарь по значению. Подобная задача может возникнуть, например, при обработке больших объемов данных, когда необходимо сортировать словарь для удобства визуального анализа или для дальнейшей обработки данных.

Рассмотрим пример. Есть словарь, где ключами являются имена, а значениями — возраст:

people = {"Вася": 25, "Петя": 30, "Маша": 20}

Предположим, что требуется отсортировать этот словарь по возрасту в порядке возрастания.

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

В качестве этого аргумента можно передать функцию, которая будет применена к каждому элементу перед сравнением. Для доступа к значениям словаря в Python используется метод get().

Итак, для сортировки словаря по значению в порядке возрастания можно использовать следующий код:

sorted_people = sorted(people.items(), key=lambda item: item[1])

В этом коде people.items() возвращает пары (ключ, значение), key=lambda item: item[1] указывает, что сортировка происходит по значению (второму элементу пары), а не по ключу.

Результатом выполнения этого кода будет список кортежей:

[('Маша', 20), ('Вася', 25), ('Петя', 30)]

Если же требуется отсортировать словарь по значению в порядке убывания, нужно добавить аргумент reverse=True в функцию sorted():

sorted_people = sorted(people.items(), key=lambda item: item[1], reverse=True)

Результатом будет:

[('Петя', 30), ('Вася', 25), ('Маша', 20)]

Изучайте Python на онлайн-курсе от Skypro «Python-разработчик». Программа рассчитана на новичков без опыта программирования и технического образования. Курс проходит в формате записанных коротких видеолекций. Будет много проверочных заданий и мастер-классов. В конце каждой недели — живая встреча с экспертами в разработке для ответов на вопросы и разбора домашек.

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

Тест на профориентацию
За 10 минут узнайте, как ваш опыт пригодиться в IT индустрии
Подробнее
Тест на профориентацию

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