Функция sorted()

Тренажер по Python для пользователей с начальным уровнем подготовки.

Тренажер по Python

Функция sorted() — одна из самых полезных встроенных функций Python для работы с данными. Она принимает любой итерируемый объект и возвращает новый отсортированный список, не изменяя исходные данные. В этом тренажёре ты научишься использовать sorted() для сортировки списков, строк и других коллекций. Разберёшься с параметрами reverse и key, которые позволяют менять направление сортировки и задавать собственные правила упорядочивания элементов. Также поймёшь разницу между sorted() и методом .sort(), что важно для написания чистого и предсказуемого кода. Задания построены от простых примеров к более сложным случаям с lambda-функциями и сортировкой составных структур данных.

Список тем

Базовая сортировка списка

id: 40050_task1

Посмотрите на код, который применяет функцию sorted() к списку чисел. Определите, какой результат будет выведен на экран после выполнения этого кода.

Выберите правильный вариант ответа
numbers = [5, 2, 8, 1, 9]
result = sorted(numbers)
print(result)
Сообщения
Проверить
Показать подсказку

Синтаксис функции sorted()

id: 40050_task2

Заполните пропуски, чтобы отсортировать список слов в алфавитном порядке и сохранить результат в переменную sorted_words.

Заполните пропуски
words = ['banana', 'apple', 'cherry']
sorted_words = input1S(input2S)
print(sorted_words)
Сообщения
Проверить
Показать решение на 3 сек.
Показать подсказку

Параметры функции sorted()

id: 40050_task3

Сопоставьте параметры функции sorted() с их описанием. Перетащите элементы из правой колонки к соответствующим описаниям слева.

Сопоставьте строки в правой части с соответствующими строками в левой по порядковому номеру
Объект, элементы которого нужно отсортировать
Функция, применяемая к каждому элементу для получения ключа сравнения
Логический флаг для сортировки в обратном порядке
reverse
key
iterable
Сообщения
Проверить
Показать подсказку

Сортировка в обратном порядке

id: 40050_task4

Проанализируйте код с использованием параметра reverse. Какой результат выведет программа?

Выберите правильный вариант ответа
scores = [75, 90, 60, 85]
result = sorted(scores, reverse=True)
print(result)
Сообщения
Проверить
Показать подсказку

Сортировка строки

id: 40050_task5

Функция sorted() может работать не только со списками. Посмотрите на код и введите первый элемент результирующего списка (один символ).

Что должно получиться?
text = "Python"
result = sorted(text)
print(result[0])
Сообщения
Проверить
Показать подсказку

Ошибка в использовании sorted()

id: 40050_task6

В этом коде есть ошибка — программист перепутал функцию sorted() с методом списка. Найдите и исправьте строку с ошибкой.

Найдите ошибку и исправьте
data = [3, 1, 4, 1, 5]
result = data.sorted()
print(result)
Сообщения
Проверить
Показать решение на 3 сек.
Показать подсказку

Сортировка по длине строк

id: 40050_task7

Используя элементы из банка, соберите код, который отсортирует список слов по их длине — от самого короткого к самому длинному.

Нужно правильно расставить в пропуски предложенные варианты
words = ['elephant', 'cat', 'dog', 'butterfly']
result = sorted(words, input1S=input2S)
print(result)
key
len
reverse
str
True
Сообщения
Проверить
Показать решение на 3 сек.
Показать подсказку

Сортировка кортежей по второму элементу

id: 40050_task8

Изучите код, использующий lambda-функцию для сортировки списка кортежей. Определите, какой кортеж окажется первым в результате.

Выберите правильный вариант ответа
students = [('Alice', 85), ('Bob', 92), ('Charlie', 78)]
result = sorted(students, key=lambda x: x[1])
print(result[0])
Сообщения
Проверить
Показать подсказку

Сортировка без учёта регистра

id: 40050_task9

Заполните пропуски, чтобы отсортировать список слов в алфавитном порядке без учёта регистра букв. Используйте строковый метод, который приводит строку к нижнему регистру.

Заполните пропуски
words = ['Banana', 'apple', 'Cherry', 'date']
result = sorted(words, key=input1S.input2S)
print(result)
Сообщения
Проверить
Показать решение на 3 сек.
Показать подсказку

sorted() vs .sort() — ключевые отличия

id: 40050_task10

Распределите утверждения по категориям в зависимости от того, к чему они относятся: к функции sorted() или к методу списка .sort().

Перетяните элементы в соответствующие блоки
Функция sorted()
Метод .sort()
Возвращает новый отсортированный список
Изменяет исходный список на месте
Работает с любым итерируемым объектом
Доступен только для списков
Возвращает None
Является встроенной функцией
Сообщения
Проверить
Показать подсказку

Сортировка словаря по значениям

id: 40050_task11

Соберите код, который выведет ключи словаря prices, отсортированные по возрастанию их значений (цен). Ожидаемый вывод: ['bread', 'milk', 'cheese']. Одна строка лишняя.

Перетяните в правильном порядке строки из одного блока в другой
print([item[0] for item in sorted_items])
sorted_items = sorted(prices.items(), key=lambda x: x[1])
prices = {'milk': 50, 'bread': 30, 'cheese': 80}
sorted_items = sorted(prices.keys())
print(prices)
Сообщения
Проверить
Показать решение на 3 сек.
Показать подсказку

Сортировка по нескольким критериям

id: 40050_task12

Изучите код, который сортирует список кортежей. Введите имя студента, который окажется первым в отсортированном списке (только имя, без кавычек).

Что должно получиться?
students = [
    ('Diana', 20),
    ('Alice', 20),
    ('Bob', 19),
    ('Charlie', 21)
]
result = sorted(students, key=lambda x: (x[1], x[0]))
print(result[0][0])
Сообщения
Проверить
Показать подсказку

Ошибка с результатом .sort()

id: 40050_task13

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

Найдите ошибку и исправьте
numbers = [5, 2, 8, 1]
result = numbers.sort()
print(result)
Сообщения
Проверить
Показать решение на 3 сек.
Показать подсказку

Стабильность сортировки

id: 40050_task14

Python использует стабильную сортировку — элементы с одинаковыми ключами сохраняют исходный порядок. Какой будет результат выполнения кода?

Выберите правильный вариант ответа
words = ['bee', 'ant', 'cat', 'dog']
result = sorted(words, key=len)
print(result)
Сообщения
Проверить
Показать подсказку

Обратная сортировка по длине

id: 40050_task15

Заполните пропуски, чтобы отсортировать список слов по убыванию их длины — от самого длинного к самому короткому.

Заполните пропуски
words = ['hi', 'hello', 'hey', 'greetings']
result = sorted(words, key=input1S, input2S=input3S)
print(result)
Сообщения
Проверить
Показать решение на 3 сек.
Показать подсказку
НайтиКурс.Ру