L. Список покупок 2.0

Давайте вновь поможем человеку с покупками. Разработайте программу, которая собирает пожелания семьи в единый список.

Формат ввода

В первой строке задано натуральное число N — количество членов семьи. В следующих N строках записаны желаемые продукты (через запятую и пробел).

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

Отсортированный по алфавиту список продуктов с нумерацией.

Примечание

Помните, что итераторы можно хранить в списке, а его можно распаковать в любую функцию.

Пример

Ввод

3
картина, корзина, картонка
мыло, манка
молоко, хлеб, сыр

Вывод

1. картина
2. картонка
3. корзина
4. манка
5. молоко
6. мыло
7. сыр
8. хлеб

Ввод

2
печенье, сушки
чай, кофе

Вывод

1. кофе
2. печенье
3. сушки
4. чай

Решение

Ничего сложного или особо нового по сравнению с решением задачи E. Список покупок. Единственная разница в том, что нам предложено сохранить итератор в список и распаковать уже этот список, а не сам итератор.

Посмотреть код

Решение

Python
string = []

for _ in range(int(input())):
    string.extend(input().split(', '))

lst = enumerate(sorted(string), 1)

print('\n'.join([f'{num}. {item}' for num, item in lst]))
Подписаться
Уведомить о
guest
3 комментариев
Старые
Новые Популярные
Межтекстовые Отзывы
Посмотреть все комментарии
Smotri
Smotri
07.11.2024 15:59

Доброго времени суток, не могу победить эту задачу своими силами, даже после сверки ответа с вашим решением.
Помогите понять в чём проблема…
gro = set()
for i in range(int(input())):
    gro |= set(input().split(‘, ‘))

for n, staff in enumerate(sorted(gro)):
    print(f{n + 1}. {staff})
Ломается на 3-ей проверке “Неверный ответ”, но ума не приложу, какие входные надо взять, чтобы оно не работало, подумал что дело в том, что не использовал распаковку и генератор, следующий код тоже не прошёл 3-ую проверку
gro = set()
for i in range(int(input())):
    gro |= set(input().split(‘, ‘))

answer = [f{n + 1}. {staff} for n, staff in enumerate(sorted(gro))]
for ns in answer:
    print(ns)
Потом я попробовал изменить последнее решение с учётом примечания, использовав для формирования ответа распоковку итератора, но опять 3-ая проверка скидывает решение
gro = set()
for i in range(int(input())):
    gro |= set(input().split(‘, ‘))

answer = (f{n + 1}. {staff} for n, staff in enumerate(sorted(gro)))
for ns in [*answer]:
    print(ns)
Чего ему от меня надо 😀

Smotri
Smotri
Ответить на  Сергей Клочко
07.11.2024 18:20

Почему-то условие задачи показалось именно с намёком на исключение дубликатов, список покупок как бы… как вы и сказали. Спасибо за ответ