bool([""]) равен True, потому что список содержит один элемент. Проверяется пустота самого контейнера, а не истинность его содержимого.
Почему bool([""]) возвращает True?
bool([""]) равен True, потому что список содержит один элемент. Проверяется пустота самого контейнера, а не истинность его содержимого.
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
bool([""]) равен True, потому что список содержит один элемент. Проверяется пустота самого контейнера, а не истинность его содержимого.
Сравните: bool([]) — False, bool(['']) — True, bool('') — False. Вложенный пустой список или значение None тоже делают внешний список непустым. Если нужно проверить истинность элементов, используют, например, any(values) или all(values) в зависимости от условия, а не bool всего списка.