У вас уже есть функция normalize_email, которая принимает строку и возвращает строку. Нужно применить её к списку emails и получить новый список. Какой вариант наиболее уместен и читаем?

Alist(map(lambda e: normalize_email(e), emails))
Blist(map(normalize_email, emails))
Ctuple(map(normalize_email, emails))
Dlist(filter(normalize_email, emails))
Правильный ответ. Если функция уже определена, в map() её передают по имени, без обёртки lambda, и приводят результат к списку через list().

Разбор

list(map(normalize_email, emails)) — самая компактная и читаемая запись: функция передана напрямую, итератор приведён к списку. lambda e: normalize_email(e) — лишняя обёртка, которая делает ровно то же самое. tuple(map(...)) тоже применяет функцию к каждому элементу, но возвращает кортеж, а не список. filter(normalize_email, ...) использовал бы функцию как предикат и возвращал только те значения, которые normalize_email посчитала бы истинными, — это совсем другая операция.

Проверь себя · 1/3разбор после ответа
У вас уже есть функция normalize_email, которая принимает строку и возвращает строку. Нужно применить её к списку emails и получить новый список. Какой вариант наиболее уместен и читаем?
Тренировать Python в Telegram

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