Сравнение результатов сортировки списков

Вывод — False. sorted возвращает новый отсортированный список, а numbers.sort() изменяет исходный список и возвращает None.

Короткий ответ

Что ответить на собеседовании

Вывод — False. sorted возвращает новый отсортированный список, а numbers.sort() изменяет исходный список и возвращает None.

Подробный разбор

Ответ с пояснениями

Условие

Какой вывод появится в консоли после выполнения следующего кода? Варианты ответа:

  • False
  • будет вызвано исключение
  • True
  • [0, 1, 2, 4, 5, 6, 7, 9]
numbers = [5, 9, 1, 2, 0, 7, 6, 4]
sorted_numbers1 = sorted(numbers)
sorted_numbers2 = numbers.sort()
print(sorted_numbers1 == sorted_numbers2)

Ответ

Вывод — False. sorted возвращает новый отсортированный список, а numbers.sort() изменяет исходный список и возвращает None.

После выполнения кода значения будут такими:

sorted_numbers1 == [0, 1, 2, 4, 5, 6, 7, 9]
sorted_numbers2 is None
numbers == [0, 1, 2, 4, 5, 6, 7, 9]

Сравнение списка с None через == даёт False, исключения не возникает. Если нужно сравнить два результата сортировки, после numbers.sort() сравнивайте sorted_numbers1 == numbers. Возвращаемое значение None у изменяющего метода помогает не спутать сортировку на месте с созданием нового контейнера.

ИИ-помощник для собеседований

Хочешь уверенно проходить собеседования?

Попробуй ИИ-помощник для собеседований: слышит вас и собеседника, анализирует экран, подсказывает ответы в реальном времени, работает без VPN и не попадает в захват экрана.

Подробнее