Отбор истинных элементов списка при помощи list comprehension

Результат будет [1, 'text', [1, 2], True]. Условие if item проверяет истинность каждого элемента и не преобразует сохранённые значения в bool.

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

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

Результат будет [1, 'text', [1, 2], True]. Условие if item проверяет истинность каждого элемента и не преобразует сохранённые значения в bool.

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

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

Условие

Задача состоит в том, чтобы из заданного списка оставить только те элементы, которые в контексте Python считаются истинными (True). Для решения следует воспользоваться короткой конструкцией list comprehension, позволяющей пройтись по всем элементам исходного списка и собрать в новый список лишь те, которые удовлетворяют условию истинности.

original_list = [0, 1, '', 'text', [], [1, 2], None, True, False]
filtered_list = [item for item in original_list if item]
print(filtered_list)  # выводит элементы, интерпретируемые как True

В результате filtered_list будет содержать только элементы, которые Python считает истинными, а все «ложные» значения (0, пустая строка, пустой список, None, False и т.п.) будут исключены.

Ответ

Результат будет [1, 'text', [1, 2], True]. Условие if item проверяет истинность каждого элемента и не преобразует сохранённые значения в bool.

Ноль, пустые строка и список, None и False исключаются. Число 1, непустые строка и список и True остаются в исходном порядке. Это отличается от item is True, которое оставило бы только булево True. Новый внешний список не означает глубокого копирования вложенных объектов: элемент [1, 2] остаётся тем же списком.

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

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

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

Подробнее