List comprehension оставляет истинные элементы без преобразования. Из списка удалятся False, пустая строка, числовые нули и None; порядок остальных значений сохранится.
Отбор истинных элементов из списка
List comprehension оставляет истинные элементы без преобразования. Из списка удалятся False, пустая строка, числовые нули и None; порядок остальных значений сохранится.
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
Условие
Необходимо выполнить преобразование и отфильтровать исходный массив, используя list comprehension (встроенный цикл), чтобы в результирующем списке остались только те элементы, которые Python считает истинными.
values = [1.1, False, 18, '', 0, '□', 'Ω', {'id': 777}, True, 'hello', 0.0, '○', None]
filtered = [v for v in values if v]
Ответ
List comprehension оставляет истинные элементы без преобразования. Из списка удалятся False, пустая строка, числовые нули и None; порядок остальных значений сохранится.
Результат:
[1.1, 18, '□', 'Ω', {'id': 777}, True, 'hello', '○']
True остаётся, поскольку является истинным значением. Это не отбор только булевых True и не преобразование к bool. Непустой словарь тоже истинен. Новый список содержит ссылку на прежний словарь, а не его глубокую копию.