Вывод — 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 у изменяющего метода помогает не спутать сортировку на месте с созданием нового контейнера.