FishHook
Июнь 25, 2021 10:46:28
halo
Дело в том, что по опыту, команд может быть 100…
Да хоть миллион, что это меняет? Я дал вам рабочий алгоритм, чем он вас не устраивает, объясните толком
halo
Июнь 25, 2021 11:45:50
так в том и дело, что надо не просто копипастить, а понять что код делает.
А почему взято так:
('team1', 3),
('team2', 1),
('team3', 0),
('team1', 1),
('team2', 1),
('team3', 1),
('team1', 3),
('team2', 0)
Я пока не очень понимаю.
И, судя по этому примеру, получается, что команды может быть только 3
FishHook
Июнь 25, 2021 12:41:03
Я вроде не обещал вам готовое решение со всей вот этой туфтой типа “В первой строке указано целое число n n n — количество завершенных игр….” и так далее. У вас вроде нет проблем с тем, чтобы распарсить ввод. У вас был конкретный вопрос “Как сделать, чтобы цифровые значения ключей складывались, если встречаются одинаковые ключи?”. Мой пример демонстрирует, как можно это реализовать. Что вам непонятно? Вы когда на почте заполняете бланк по образцу, вам же понятно, надеюсь, что Иванов Иван Иванович это только пример и его не надо дословно копировать?
marvellik
Июнь 27, 2021 16:22:13
halo получаем значение по ключу. где ключ команда а значение таблица.
в соответствии с игрой меняем требуемые поля и перезаписываем таблицу для данной команды.
без заморочек.
dct = {}
for _ in range(int(input())):
com_1, gol_1, com_2, gol_2 = input().split(';')
gol_1, gol_2 = int(gol_1), int(gol_2)
val_1 = dct.get(com_1, [0,0,0,0,0]) # получаем значения каждой команды по ключу
val_2 = dct.get(com_2, [0,0,0,0,0])# как это работает читаем метод словаря get()
val_1[0] += 1 # добавляем количество игр в таблицу
val_2[0] += 1 # для каждой команды из строки
if gol_1 > gol_2: # если первая выиграла
val_1[1] += 1 # добавляем победу
val_1[4] += 3 # добавляем 3 очка
val_2[3] += 1 # проигравшей добавляем проигрыш
elif gol_2 > gol_1: # то же самое что и выше поменяв команды местами
val_2[1] += 1
val_2[4] += 3
val_1[3] += 1
else: # если ничья то каждой команде добавляем ничью и по очку
val_1[2] += 1
val_1[4] += 1
val_2[2] += 1
val_2[4] += 1
dct[com_1] = val_1 # перезаписываем таблицу для каждой команды
dct[com_2] = val_2
for key,val in dct.items():
print(key, *val)
сейчас FishHook начнет ругать меня за готовое решение, но цель показать вам что это не так сложно и совсем по другому чем хотите сделать вы.
halo
Июнь 28, 2021 14:13:11
marvellik
Спасибо!
Собственно, здесь главное не решение, а комментарии.
Единственное, вопрос.
В первом цикле “_” нигде не фигурирует, я на “степике” еще ни разу не встречал подобные циклы, в которых бы не участвовала переменная в итерациях.
Как лучше освоить язык? Где лучше брать материал?
Я, в основном, использовал то, что дают на “степике” и еще смотрел видеоуроки “egoroff_chanell”
Что бы Вы посоветовали?
marvellik
Июнь 28, 2021 15:50:52
halo
В первом цикле “_” нигде не фигурирует
именно. зачем задавать переменную которую нигде не используем. но цикл требует переменной поэтому в питоне и пишут так for _ in …
хотя фактически _ тоже переменная но всем сразу понятно что она не используется
halo
Как лучше освоить язык? Где лучше брать материал?
читаем лутца, решаем задачи, гуглим непонятные вопросы по языку. я вообще 0 в программировании. в далеком 88 году ноликами на бейсике на зеленом экране что то рисовали примитивное, это максимум что я знал о пк.
потребовалась программа делающая скриншот определенной картинки экрана. гугл сказал питон самый простой. начал изучать тут
ПИТОНТЬЮТОР ну и пошло поехало. справочник, форум, виденаблюдение, менеджер паролей с GUI. вообщем досуг всегда обеспечен. главное желание и время.