Текстовые столбцы: нормализация и разбор через .str
Содержание курса
Журнал регистраций: домен через .str.split и фильтрация по домену через .str.contains
Что уже дано
Проверяющая система запускает вашу программу и подаёт данные через stdin. Никаких заранее созданных переменных нет — вы читаете всё сами.
Что нужно сделать
Напишите программу, которая анализирует журнал регистраций пользователей:
- Читает из
stdinцелое числоn— количество строк журнала. - Читает следующие
nстрок; каждая содержит адрес электронной почты в форматеимя@домен, напримерalice@gmail.comилиBOB@MAIL.RU. Вокруг адреса могут быть пробелы, но внутри самого адреса пробелов нет. - Создаёт
pd.Seriesс именемemailsиз прочитанных строк. - Создаёт
pd.Seriesс именемemails_clean— результат.str.strip().str.lower()наemails. - Разбивает
emails_cleanпо символу'@'через.str.split('@', expand=True)и сохраняет результат вparts(DataFrame с двумя столбцами0и1). - Создаёт
pd.Seriesс именемdomain— столбецparts[1](доменная часть адреса). - Создаёт булев
pd.Seriesс именемis_gmail—Trueтам, гдеdomainсодержит подстроку'gmail', через.str.contains('gmail', regex=False). - Создаёт булев
pd.Seriesс именемis_ru—Trueтам, гдеdomainоканчивается на'.ru', через.str.endswith('.ru'). - Выводит в
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
Как проверяется решение
Сравнение вывода: Правила исходной проверяющей системы. Интерактивный запуск не влияет на оценку. Лимит сессии — 5 минут, процессорного времени — 10 секунд.
Отправьте решение, чтобы увидеть результаты тестов.
