Уведомления

Группа в Telegram: @pythonsu

#1 Июнь 25, 2021 10:46:28

FishHook
От:
Зарегистрирован: 2011-01-08
Сообщения: 8312
Репутация: +  568  -
Профиль   Отправить e-mail  

Операции со словарями

halo
Дело в том, что по опыту, команд может быть 100…
Да хоть миллион, что это меняет? Я дал вам рабочий алгоритм, чем он вас не устраивает, объясните толком



Офлайн

#2 Июнь 25, 2021 11:45:50

halo
Зарегистрирован: 2020-05-07
Сообщения: 14
Репутация: +  0  -
Профиль   Отправить e-mail  

Операции со словарями

так в том и дело, что надо не просто копипастить, а понять что код делает.
А почему взято так:
('team1', 3),
('team2', 1),
('team3', 0),
('team1', 1),
('team2', 1),
('team3', 1),
('team1', 3),
('team2', 0)

Я пока не очень понимаю.
И, судя по этому примеру, получается, что команды может быть только 3

Офлайн

#3 Июнь 25, 2021 12:41:03

FishHook
От:
Зарегистрирован: 2011-01-08
Сообщения: 8312
Репутация: +  568  -
Профиль   Отправить e-mail  

Операции со словарями

Я вроде не обещал вам готовое решение со всей вот этой туфтой типа “В первой строке указано целое число n n n — количество завершенных игр….” и так далее. У вас вроде нет проблем с тем, чтобы распарсить ввод. У вас был конкретный вопрос “Как сделать, чтобы цифровые значения ключей складывались, если встречаются одинаковые ключи?”. Мой пример демонстрирует, как можно это реализовать. Что вам непонятно? Вы когда на почте заполняете бланк по образцу, вам же понятно, надеюсь, что Иванов Иван Иванович это только пример и его не надо дословно копировать?



Офлайн

#4 Июнь 25, 2021 12:45:03

halo
Зарегистрирован: 2020-05-07
Сообщения: 14
Репутация: +  0  -
Профиль   Отправить e-mail  

Операции со словарями

Спасибо.

Офлайн

#5 Июнь 27, 2021 16:22:13

marvellik
Зарегистрирован: 2016-05-15
Сообщения: 639
Репутация: +  73  -
Профиль   Отправить e-mail  

Операции со словарями

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 начнет ругать меня за готовое решение, но цель показать вам что это не так сложно и совсем по другому чем хотите сделать вы.

Отредактировано marvellik (Июнь 27, 2021 16:23:59)

Офлайн

#6 Июнь 28, 2021 14:13:11

halo
Зарегистрирован: 2020-05-07
Сообщения: 14
Репутация: +  0  -
Профиль   Отправить e-mail  

Операции со словарями

marvellik
Спасибо!
Собственно, здесь главное не решение, а комментарии.
Единственное, вопрос.
В первом цикле “_” нигде не фигурирует, я на “степике” еще ни разу не встречал подобные циклы, в которых бы не участвовала переменная в итерациях.

Как лучше освоить язык? Где лучше брать материал?
Я, в основном, использовал то, что дают на “степике” и еще смотрел видеоуроки “egoroff_chanell”

Что бы Вы посоветовали?

Отредактировано halo (Июнь 28, 2021 14:19:36)

Офлайн

#7 Июнь 28, 2021 15:50:52

marvellik
Зарегистрирован: 2016-05-15
Сообщения: 639
Репутация: +  73  -
Профиль   Отправить e-mail  

Операции со словарями

halo
В первом цикле “_” нигде не фигурирует
именно. зачем задавать переменную которую нигде не используем. но цикл требует переменной поэтому в питоне и пишут так for _ in …
хотя фактически _ тоже переменная но всем сразу понятно что она не используется
halo
Как лучше освоить язык? Где лучше брать материал?
читаем лутца, решаем задачи, гуглим непонятные вопросы по языку. я вообще 0 в программировании. в далеком 88 году ноликами на бейсике на зеленом экране что то рисовали примитивное, это максимум что я знал о пк.
потребовалась программа делающая скриншот определенной картинки экрана. гугл сказал питон самый простой. начал изучать тут ПИТОНТЬЮТОР ну и пошло поехало. справочник, форум, виденаблюдение, менеджер паролей с GUI. вообщем досуг всегда обеспечен. главное желание и время.

Отредактировано marvellik (Июнь 28, 2021 15:51:47)

Офлайн

#8 Июль 2, 2021 10:19:54

halo
Зарегистрирован: 2020-05-07
Сообщения: 14
Репутация: +  0  -
Профиль   Отправить e-mail  

Операции со словарями

marvellik
Спасибо!

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version