Давайте вновь поможем человеку с покупками. Разработайте программу, которая собирает пожелания семьи в единый список.
Формат ввода
В первой строке задано натуральное число 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]))
Доброго времени суток, не могу победить эту задачу своими силами, даже после сверки ответа с вашим решением.
Помогите понять в чём проблема…
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)
Чего ему от меня надо 😀
Здесь немного натянутая история.
С точки зрения Яндекса, проблема в том, что в списке покупок могут быть одинаковые объекты. Скажем, два члена семьи могут заказать конфеты. И Яндекс хочет, чтобы вы их вывели два раза. В обычной жизни вы бы написали что-то типа конфеты x2 или конфеты 400 грамм вместо конфеты 200 гр. Но в этой задаче все вот так.
Почему-то условие задачи показалось именно с намёком на исключение дубликатов, список покупок как бы… как вы и сказали. Спасибо за ответ