Задача курса

pandas str.split и str.contains: фильтрация по домену email

Курс «NumPy и pandas: практический тренажёр» · урок «Текстовые столбцы: нормализация и разбор через .str»

Условие

Журнал регистраций: домен через .str.split и фильтрация по домену через .str.contains

Что уже дано

Проверяющая система запускает вашу программу и подаёт данные через stdin. Никаких заранее созданных переменных нет — вы читаете всё сами.

Что нужно сделать

Напишите программу, которая анализирует журнал регистраций пользователей:

  1. Читает из stdin целое число n — количество строк журнала.
  2. Читает следующие n строк; каждая содержит адрес электронной почты в формате имя@домен, например alice@gmail.com или BOB@MAIL.RU. Вокруг адреса могут быть пробелы, но внутри самого адреса пробелов нет.
  3. Создаёт pd.Series с именем emails из прочитанных строк.
  4. Создаёт pd.Series с именем emails_clean — результат .str.strip().str.lower() на emails.
  5. Разбивает emails_clean по символу '@' через .str.split('@', expand=True) и сохраняет результат в parts (DataFrame с двумя столбцами 0 и 1).
  6. Создаёт pd.Series с именем domain — столбец parts[1] (доменная часть адреса).
  7. Создаёт булев pd.Series с именем is_gmail — True там, где domain содержит подстроку 'gmail', через .str.contains('gmail', regex=False).
  8. Создаёт булев pd.Series с именем is_ru — True там, где domain оканчивается на '.ru', через .str.endswith('.ru').
  9. Выводит в stdout ровно четыре строки:
  • Строка 1: значения emails_clean через пробел.
  • Строка 2: значения domain через пробел.
  • Строка 3: значения is_gmail через пробел (True/False).
  • Строка 4: адреса из emails_clean, для которых is_ru равно True, через пробел. Если таких нет — пустая строка.

Запрещено использовать Python-циклы для шагов 4–9.

Ввод и вывод

Программа читает stdin и пишет в stdout.

Формат ввода

Первая строка — целое число n (1 ≤ n ≤ 15).
Следующие n строк — адреса электронной почты; вокруг адреса допустимы пробелы; после .str.strip() внутри адреса пробелов нет.

Формат вывода

Ровно четыре строки в порядке, описанном выше. Значения внутри строки разделяются одним пробелом.

Примеры

Пример 1

Ввод
5
  Alice@Gmail.COM 
BOB@MAIL.RU  
carol@yandex.ru
Dave@Gmail.com
eve@outlook.com
Ожидаемый результат
alice@gmail.com bob@mail.ru carol@yandex.ru dave@gmail.com eve@outlook.com
gmail.com mail.ru yandex.ru gmail.com outlook.com
True False False True False
bob@mail.ru carol@yandex.ru

Попробуйте решить

РешениеPython
Без регистрации · результат не сохраняется