Текстовые столбцы: нормализация и разбор через .str
Содержание курса
Каталог товаров: split, startswith и contains без циклов
Что уже дано
Проверяющая система запускает вашу программу и подаёт данные через stdin. Никаких заранее созданных переменных нет — вы читаете всё сами.
Что нужно сделать
Напишите программу, которая обрабатывает каталог товаров:
- Читает из
stdinцелое числоn— количество строк каталога. - Читает следующие
nстрок; каждая содержит один токен — артикул товара в форматеКАТЕГОРИЯ-МОДЕЛЬ-НОМЕР, напримерPhone-Galaxy-12илиTablet-iPad-5. Токены не содержат пробелов внутри. - Создаёт
pd.Seriesс именемcodesиз прочитанных строк. - Разбивает
codesпо символу'-'через.str.split('-', expand=True)и сохраняет результат вparts. Это DataFrame с тремя столбцами0,1,2. - Создаёт
pd.Seriesс именемcategory— столбецparts[0], приведённый к нижнему регистру через.str.lower(). - Создаёт булев
pd.Seriesс именемis_phone—Trueтам, гдеcategoryначинается с'phone', через.str.startswith('phone'). - Создаёт булев
pd.Seriesс именемhas_digit—Trueтам, где исходныйcodesсодержит хотя бы одну цифру, через.str.contains(r'\d', regex=True). - Выводит в
stdoutровно четыре строки:
- Строка 1: значения
categoryчерез пробел. - Строка 2: значения
is_phoneчерез пробел (True/False). - Строка 3: значения
has_digitчерез пробел (True/False). - Строка 4: артикулы из
codes, для которыхis_phoneравноTrue, через пробел. Если таких нет — пустая строка.
Запрещено использовать Python-циклы для вычислений в шагах 4–7. Генераторные выражения разрешены только для форматирования строк вывода в шаге 8.
Ввод и вывод
Программа читает stdin и пишет в stdout.
Формат ввода
Первая строка — целое число n (1 ≤ n ≤ 20).
Следующие n строк — артикулы вида КАТЕГОРИЯ-МОДЕЛЬ-НОМЕР без пробелов.
Формат вывода
Ровно четыре строки в порядке, описанном выше. Значения внутри строки разделяются одним пробелом.
О данных в ответах
Используйте учебные данные. Не вставляйте пароли, токены, ключи доступа, паспортные и банковские данные, а также персональные данные других людей. Политика обработки данных.
- Тест 1Ввод
5 Phone-Galaxy-12 Tablet-iPad-5 phone-Pixel-7 Laptop-ThinkPad-3 Phone-iPhone-14
Ожидаемый выводphone tablet phone laptop phone True False True False True True True True True True Phone-Galaxy-12 phone-Pixel-7 Phone-iPhone-14
Как проверяется решение
Сравнение вывода: Правила исходной проверяющей системы. Интерактивный запуск не влияет на оценку. Лимит сессии — 5 минут, процессорного времени — 10 секунд.
Отправьте решение, чтобы увидеть результаты тестов.
