Логотип YeaHub

База вопросов

Собеседования

Тренажёр

База ресурсов

Обучение

Навыки

Войти

Выбери, каким будет IT завтра — вместе c нами!

YeaHub — это полностью открытый проект, призванный объединить и улучшить IT-сферу. Наш исходный код доступен для просмотра на GitHub. Дизайн проекта также открыт для ознакомления в Figma.

© 2026 YeaHub

AI info

Карта сайта

Документы

Медиа

Назад
Вопрос про Python: lambda, sort, key parameter, Python sorting, custom sort

Как использовать lambda в параметре key функции сортировки?

Этот вопрос проверяет понимание использования lambda-функций в качестве параметра key для настройки сортировки коллекций в Python.

Короткий ответ

Lambda-функция в параметре key позволяет задать правило, по которому извлекается значение для сравнения элементов при сортировке. Например, чтобы отсортировать список строк по их длине, можно передать key=lambda x: len(x). Функция sort или sorted применяет эту lambda к каждому элементу и сортирует по полученным значениям. Это удобно для сортировки по атрибутам объектов или по сложным ключам без создания отдельной именованной функции.

Длинный ответ

В Python функции sorted() и метод списка list.sort() принимают параметр key, который определяет функцию, применяемую к каждому элементу для получения ключа сортировки. Lambda-функции идеально подходят для этой роли, так как позволяют кратко описать правило извлечения ключа прямо на месте, без объявления отдельной функции с помощью def.

Как это работает

Когда вы передаёте lambda в key, Python внутренне вызывает эту функцию для каждого элемента коллекции. Полученные результаты (ключи) используются для сравнения при сортировке, но исходные элементы остаются неизменными в итоговом списке. Это особенно полезно для сортировки сложных структур данных, таких как списки кортежей, словарей или объектов.

Примеры использования

Рассмотрим несколько практических сценариев:

  • Сортировка строк по длине:
    words = ['apple', 'fig', 'banana']
    sorted_words = sorted(words, key=lambda s: len(s))
    # Результат: ['fig', 'apple', 'banana']
  • Сортировка списка кортежей по второму элементу:
    data = [('Alice', 25), ('Bob', 20), ('Charlie', 30)]
    data.sort(key=lambda item: item[1])
    # Результат: [('Bob', 20), ('Alice', 25), ('Charlie', 30)]
  • Сортировка словарей по значению определённого ключа:
    users = [{'name': 'Alice', 'age': 25}, {'name': 'Bob', 'age': 20}]
    sorted_users = sorted(users, key=lambda d: d['age'])
    # Результат: [{'name': 'Bob', 'age': 20}, {'name': 'Alice', 'age': 25}]
  • Сортировка с учётом регистра без учёта регистра:
    names = ['alice', 'Bob', 'charlie']
    sorted_names = sorted(names, key=lambda s: s.lower())
    # Результат: ['alice', 'Bob', 'charlie']

Где применяется

Такой подход широко используется при обработке данных, где требуется упорядочить коллекции по нестандартным критериям: сортировка объектов по атрибутам, упорядочивание записей из базы данных перед выводом, организация результатов поиска по релевантности. Lambda в key делает код компактным и читаемым, избегая загромождения пространства имён вспомогательными функциями.

Вывод: Используйте lambda в параметре key для быстрой и наглядной настройки сортировки по произвольному правилу, особенно когда правило простое и используется только в одном месте. Для более сложной логики, которая повторяется или требует документации, лучше определить именованную функцию.

  • Аватар

    Python Guru

    Sergey Filichkin

    Guru – это эксперты YeaHub, которые помогают развивать комьюнити.

Уровень

  • Рейтинг:

    4

  • Сложность:

    3

Навыки

  • Python

    Python

Ключевые слова

#lambda

#sort

#key parameter

#Python sorting

#custom sort

Подпишись на Python Developer в телеграм

  • Аватар

    Python Guru

    Sergey Filichkin

    Guru – это эксперты YeaHub, которые помогают развивать комьюнити.