Menu
Coddy logo textTech

Задача на повторение — 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)]
challenge icon

Задание

Легко

Создайте функцию с именем 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):
    # Напишите здесь код
quiz iconПроверьте себя

В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.

Все уроки раздела Logic & Flow