Курс 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"
- Участие в сообществе @selectel
- Отслеживание прогресса с tqdm
- Функции с необязательными аргументами
- Тип CodeType в Python.
- Транспонирование 2D-массива с помощью zip
- UserString в Python
- Генераторы данных
- Flask — веб-фреймворк Python
- Округление дробей в Python
- Работа с буфером обмена на Python
- Объединение множеств в Python
- Распаковка с оператором *
- Передача словаря через **kwargs
- Объединение словарей в Python
- Функция reduce() в Python
- Bootle — простой веб-фреймворк
- Хэш-функции и метод цепочек
- Создание .exe файла с pyinstaller
- Удаление элементов из списка в Python
- Конвертация текстовых чисел с помощью Numerizer
- Ноутбуки AMD Ryzen ™ 4000: мощность и эффективность
- Упрощенный вывод данных в Python
- Модуль itertools: эффективная работа с итераторами
- Работа с областями видимости переменных
- Декораторы с аргументами в Python
- Получение текущей даты в Python
- Измерение времени выполнения кода
- Работа с словарями в Python
- Вывод переменной и строки в Python
- Ускорение обработки данных с %autoawait
- Декораторы в Python
- Функция с *args.
- Python: возвращение нескольких значений
- Преобразование чисел в восьмеричную строку
- Работа с контекстным менеджером Pool
- Комментарии в Python
- Динамическая типизация в Python
- Уникальность ключей в словаре
- Глубокое копирование объектов
- Извлечение статей с newspaper3k
- Гибкие функции Python
- Метод __imod__ для Python
- Сортировка слиянием
- Именование столбцов в Python с pandas
- Просмотр внешних файлов в %pycat
- Многоточие в Python
- Частичное совпадение ввода















