Нужно получить список строк без пустых значений из items. Вы решили использовать filter(), и хотите избежать лишнего lambda. Какой вариант лучше?

Alist(filter(lambda x: x, items))
Blist(filter(None, items))
Clist(map(None, items))
Dlist(items.filter(None))
Правильный ответ. filter(None, items) оставляет только истинные значения, а list(...) сразу собирает их в список — без лишней lambda.

Разбор

При первом аргументе None функция filter использует встроенный тест на «истинность» каждого элемента — это эквивалент lambda x: x, но без явной обёртки. list(filter(None, items)) сразу возвращает список, как просили. Вариант с lambda x: x делает то же самое, но добавляет лишнюю функцию. У map None в качестве функции — устаревшая форма, в Python 3 это вызовет TypeError. У списка items нет метода .filter(), такой вызов поднимет AttributeError.

Проверь себя · 1/3разбор после ответа
Есть список булевых результатов проверок качества данных checks. Какое выражение наиболее прямо отвечает на вопрос «все проверки прошли»?
Тренировать Python в Telegram

Ещё вопросы по теме «Генераторы списков и встроенные функции»