Курс Python → Сортировка с параметром key
При использовании параметра key при сортировке в Python, перед тем, как сравнивать два элемента списка, к ним применяется функция, которая изменяет элементы перед сравнением. Например, если у вас есть список объектов и вы хотите отсортировать их по какому-то критерию, вы можете использовать параметр key для указания функции, которая будет применяться к каждому элементу перед сравнением.
В вашем случае, вы использовали функцию prepare_item, которая меняла знак у стоимости перед сравнением. Однако, чтобы избежать создания дополнительных утилитарных функций, можно использовать лямбда-функцию для достижения того же эффекта. Лямбда-функция — это анонимная функция, которая может быть определена в одной строке и применена к каждому элементу перед сравнением.
items = [{'name': 'item1', 'price': 100}, {'name': 'item2', 'price': -50}, {'name': 'item3', 'price': 200}]
sorted_items = sorted(items, key=lambda x: abs(x['price']))
В приведенном примере, список items сортируется по абсолютному значению стоимости, используя лямбда-функцию. Это позволяет избежать использования дополнительной функции prepare_item и просто указывать ключевую функцию прямо внутри вызова sorted.
Использование лямбда-функций при сортировке с параметром key делает код более компактным и понятным, так как ключевая функция указывается непосредственно в месте, где она используется. Это удобно и эффективно при работе с большими объемами данных и требует меньше усилий по сравнению с созданием отдельной функции.
Другие уроки курса "Python"
- Вставка переменных в шаблоны Flask
- Работа с файлами в Python
- Оптимизация создания строк
- GitHub в Telegram: подписка на уведомления
- Вычисление натуральных логарифмов в NumPy
- Удаление ключа из словаря
- Открытие, чтение и закрытие файла
- Просмотр атрибутов и методов класса
- Docstring в Python
- Проверка списка: any() и all()
- Работа с IP-адресами в Python
- Разделение строки в Python
- Обработка исключений в Python
- Работа с итераторами через срезы
- Руководство по Pymorphy2
- Создание вложенных циклов for
- Проверка однородности элементов списка
- Активация Matplotlib в Jupyter
- Оператор морж в Python 3.8
- Создание новых списков
- Подсказки при вводе данных в Python
- Операции с датами в Python
- Блок else в Python
- Порядок операций в Python
- Принципы LSP и ISP в Python
- Просмотр атрибутов и методов класса
- Определение объема памяти объекта
- Выражения-генераторы в Python
- Форматирование чисел в Python
- Переворот последовательности
- Enum в Python
- Строковое представление объектов
- Очистка данных с Pandas
- Сравнение def и lambda функций в Python
- Разделение функций на этапы
- Сортировка и обратный порядок
- Изменение элемента списка
- Оболочка Python
- Перемешивание списка с shuffle()
- Динамическая типизация в Python
- Метаклассы в Python















