Задача на повторение — Lambda-сортировка
Часть раздела Logic & Flow путешествия по Python на Coddy — урок 59 из 78.
Лямбда-функции невероятно полезны при использовании с функцией sorted() для настройки сортировки в различных сценариях. Вот несколько примеров:
Сортировка строк по длине:
names = ["Alice", "Bob", "Charlie", "Diana"]
sorted_names = sorted(names, key=lambda x: len(x))
print(sorted_names)
# Вывод: ['Bob', 'Alice', 'Diana', 'Charlie']Сортировка словарей по значениям:
grades = {"Alice": 85, "Bob": 90, "Charlie": 78}
sorted_grades = sorted(grades.items(), key=lambda x: x[1])
print(sorted_grades)
# Вывод: [('Charlie', 78), ('Alice', 85), ('Bob', 90)]Сортировка чисел по абсолютному значению:
numbers = [-10, 15, -20, 25]
sorted_numbers = sorted(numbers, key=lambda x: abs(x))
print(sorted_numbers)
# Вывод: [-10, 15, -20, 25]Сортировка кортежей по нескольким критериям:
data = [("Alice", 25), ("Bob", 30), ("Charlie", 25)]
sorted_data = sorted(data, key=lambda x: (x[1], x[0]))
print(sorted_data)
# Output: [('Alice', 25), ('Charlie', 25), ('Bob', 30)]Задание
ЛегкоСоздайте функцию с именем sort_tuples, которая принимает список кортежей data в качестве аргумента. Каждый кортеж в data содержит два элемента: строку и число. Функция должна использовать функцию sorted() вместе с лямбда-функцией для сортировки списка кортежей по второму элементу (числу) в порядке возрастания. Функция должна возвращать отсортированный список кортежей.
Шпаргалка
Сортировка строк по длине:
names = ["Alice", "Bob", "Charlie", "Diana"]
sorted_names = sorted(names, key=lambda x: len(x))
print(sorted_names)
# Вывод: ['Bob', 'Alice', 'Diana', 'Charlie']Сортировка словарей по значениям:
grades = {"Alice": 85, "Bob": 90, "Charlie": 78}
sorted_grades = sorted(grades.items(), key=lambda x: x[1])
print(sorted_grades)
# Вывод: [('Charlie', 78), ('Alice', 85), ('Bob', 90)]Сортировка чисел по абсолютному значению:
numbers = [-10, 15, -20, 25]
sorted_numbers = sorted(numbers, key=lambda x: abs(x))
print(sorted_numbers)
# Вывод: [-10, 15, -20, 25]Сортировка кортежей по нескольким критериям:
data = [("Alice", 25), ("Bob", 30), ("Charlie", 25)]
sorted_data = sorted(data, key=lambda x: (x[1], x[0]))
print(sorted_data)
# Вывод: [('Alice', 25), ('Charlie', 25), ('Bob', 30)]Попробуйте сами
def sort_tuples(data):
# Напишите здесь кодВ этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.
Все уроки раздела Logic & Flow
1Изучение переменных
КонстантыМножественное присваиваниеОбмен значениями переменныхПеременные-заполнителиОкругление чиселПриведение к списку4Приложение «Книга контактов»
Показать менюДобавить контакт7Множества. Часть 2
Математические операции. Часть 1Математические операции. Часть 2Повторение — Охота за сокровищамиПодмножества и надмножестваИтерация по множествамПовторение — Трекер турнира10Базовые генераторы списков
СинтаксисСоздание простых списковДобавление условийИспользование агрегации данныхПовторение — Дом списковПовторение — Элементы свободы13Система управления запасами
Обзор проектаДобавление товара2Словари. Часть 1
Что такое словарь?Создание словаряДоступ к значениямИзменение словарейИтоги — Менеджер рецептов5Продвинутое принятие решений
Тернарный операторПроверка вхожденияПроверка идентичностиОшибки отступовПовторение — Фильтр отпусков8Менеджер записей студентов
Обзор проектаДобавить студента11Продвинутые функции
Возврат нескольких значенийLambda-функции. Часть 1Lambda-функции. Часть 2Задача на повторение — Lambda-сортировкаРекурсивные функции. Часть 1Рекурсивные функции. Часть 2Повторение — сумма вложенного списка14Функции высшего порядка
Функция mapФункция filterПовторение — Валидатор emailПовторение — Обработчик чисел3Словари. Часть 2
Методы словарейВложенные словариПроверка наличия ключейПеребор словарей в циклеПовторение: счетчик частоты6Множества. Часть 1
Что такое множество?Основные операцииМетоды множествПовторение — удаление дубликатов9Продвинутая агрегация данных
Использование SumПоиск минимума и максимумаЭффективная сортировка данныхПовторение — Dictionary Sorter