В Python блок else у for выполняется, когда цикл завершился без break. Он удобен для случая «ничего не найдено», но не является универсальной заменой любой ветки else.
Оптимизация решения: как убрать ветку else и использовать for/else?
В Python блок else у for выполняется, когда цикл завершился без break. Он удобен для случая «ничего не найдено», но не является универсальной заменой любой ветки else.
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
В Python блок else у for выполняется, когда цикл завершился без break. Он удобен для случая «ничего не найдено», но не является универсальной заменой любой ветки else.
Например:
for item in items:
if matches(item):
handle(item)
break
else:
handle_missing()
При пустом items тоже выполнится handle_missing(). Ветка не выполняется при выходе через break, исключение или return. Это пример преобразования поиска, а не доказательство оптимизации неизвестного исходного решения. Прежде чем заменять ветвление, проверьте, что его смысл действительно совпадает с завершением цикла без найденного элемента.