Форум сайта python.su
haloДа хоть миллион, что это меняет? Я дал вам рабочий алгоритм, чем он вас не устраивает, объясните толком
Дело в том, что по опыту, команд может быть 100…
Офлайн
так в том и дело, что надо не просто копипастить, а понять что код делает.
А почему взято так:
('team1', 3),
('team2', 1),
('team3', 0),
('team1', 1),
('team2', 1),
('team3', 1),
('team1', 3),
('team2', 0)
Я пока не очень понимаю.
И, судя по этому примеру, получается, что команды может быть только 3
Офлайн
Я вроде не обещал вам готовое решение со всей вот этой туфтой типа “В первой строке указано целое число n n n — количество завершенных игр….” и так далее. У вас вроде нет проблем с тем, чтобы распарсить ввод. У вас был конкретный вопрос “Как сделать, чтобы цифровые значения ключей складывались, если встречаются одинаковые ключи?”. Мой пример демонстрирует, как можно это реализовать. Что вам непонятно? Вы когда на почте заполняете бланк по образцу, вам же понятно, надеюсь, что Иванов Иван Иванович это только пример и его не надо дословно копировать?
Офлайн
Спасибо.
Офлайн
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)
Отредактировано marvellik (Июнь 27, 2021 16:23:59)
Офлайн
marvellik
Спасибо!
Собственно, здесь главное не решение, а комментарии.
Единственное, вопрос.
В первом цикле “_” нигде не фигурирует, я на “степике” еще ни разу не встречал подобные циклы, в которых бы не участвовала переменная в итерациях.
Как лучше освоить язык? Где лучше брать материал?
Я, в основном, использовал то, что дают на “степике” и еще смотрел видеоуроки “egoroff_chanell”
Что бы Вы посоветовали?
Отредактировано halo (Июнь 28, 2021 14:19:36)
Офлайн
haloименно. зачем задавать переменную которую нигде не используем. но цикл требует переменной поэтому в питоне и пишут так for _ in …
В первом цикле “_” нигде не фигурирует
haloчитаем лутца, решаем задачи, гуглим непонятные вопросы по языку. я вообще 0 в программировании. в далеком 88 году ноликами на бейсике на зеленом экране что то рисовали примитивное, это максимум что я знал о пк.
Как лучше освоить язык? Где лучше брать материал?
Отредактировано marvellik (Июнь 28, 2021 15:51:47)
Офлайн
marvellik
Спасибо!
Офлайн