Есть список строк raw = ["10", "", "3"]. Нужно получить список целых чисел только из непустых строк. Какой вариант корректен и читаем?

Alist(map(int, raw))
Blist(filter(None, map(int, raw)))
C[int(x) for x in raw if x]
Dfilter(int, raw)
Правильный ответ. Comprehension удобно объединяет фильтрацию (if x) и преобразование (int(x)) без вложенных вызовов.

Разбор

List comprehension [int(x) for x in raw if x] сначала отбрасывает пустые строки, а затем применяет int(x) только к оставшимся. Варианты, которые сначала пытаются выполнить int() для всех элементов, могут упасть на пустой строке.

Проверь себя · 1/3разбор после ответа
Нужно проверить, что все значения в prices строго положительные. Какое выражение вернёт True только если все элементы больше 0?
Тренировать Python в Telegram

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