Форум сайта python.su
0


В условии не указано, сколько нужно вводить, но я так понял до ввода пробела.
Вот что есть:
d = {} def func(key, val): if key in d: d[key] += int(val) else: d[key] = int(val) while True: text = input() if not text: break key, val = text.split() func(key, val) l = d.keys() l = list(l) l.sort() for i in l: print(i, d[i])

Отредактировано AminSugar (Дек. 10, 2018 20:42:42)
Офлайн
73
попробуйте заменить ваш цикл на такой
while True: try: text = input() except : # или except EOFE error: break
Отредактировано marvellik (Дек. 10, 2018 20:59:18)
Офлайн
0
Задание с yandex contest, там написано именно так, да и при проверке моего кода сайт вводил различное число строк, причем без ввода количества строк в начале.
Заменил цикл на:
while True: try: text = input() except : break
Traceback (most recent call last): File "C:/Users/amini/Desktop/A.py", line 12, in <module> key, val = text.split() ValueError: not enough values to unpack (expected 2, got 0)
Офлайн
0
Надо было всего-лишь одну строку в try поднять и заработало.
Спасибо, @marvellik.
d = {} def func(key, val): if key in d: d[key] += int(val) else: d[key] = int(val) while True: try: text = input() key, val = text.split() except: break func(key, val) l = d.keys() l = list(l) l.sort() for i in l: print(i, d[i])
Офлайн
73
мне кажется и строку func(key, val) тоже в блок try надо прописать
Отредактировано marvellik (Дек. 10, 2018 21:23:45)
Офлайн