Есть список email emails = ["a@x.com", "b@y.com", "c@x.com"]. Нужно получить множество доменов (часть после @). Какой вариант корректен?

A{e.split("@")[0] for e in emails}
B{e.split("@")[1] for e in emails}
C[e.split("@")[1] for e in emails]
Dset(emails)
Правильный ответ. Set comprehension позволяет извлечь домен из каждой строки и автоматически убрать дубликаты.

Разбор

Выражение {e.split("@")[1] for e in emails} берёт часть после @ для каждого email. Результат — set, поэтому повторяющиеся домены (например, "x.com") автоматически схлопываются в один элемент.

Можно заниматься бесплатно

Готовим вопросы…

Три вопроса по теме этой страницы, с объяснениями.

Продолжить в браузере

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