halo
Июнь 24, 2021 13:16:49
Приветствую!
Пока не придумал как сделать лучше.
Есть запрос ввода, который помещен в цикл while.
каждая итерация добавляет в словарь ключ и его значение.
Как сделать, чтобы цифровые значения ключей складывались, если встречаются одинаковые ключи?
FishHook
Июнь 24, 2021 13:38:47
halo
Как сделать, чтобы цифровые значения ключей складывались, если встречаются одинаковые ключи?
1. Перед тем как добавлять ключ, проверять, что такого ключа нет
2. Если такой ключ уже есть, то вместо добавления ключа изменяем значение по существующему ключу
или используем метод словаря set_default (но вам наверное пока рановато)
halo
Июнь 24, 2021 14:19:04
FishHook
Поясню, чтобы было немного понятнее и, возможно, посоветуете лучший вариант
есть задача, где дается несколько значений
первое значение - цифра
следующие значения - строки (количество строк соответствует введенной цифре)
каждая строка разбивается по “точке с запятой” и помещается в список, а уже из списка берутся значения и добавляются в словарь.
я придумал это )):
Строка подается такого вида: команда;число;команда;число
Т.е. список получается
igr = int(input())
turnir = {}
n = 1
while True:
if n <= igr:
igra = input().split(';')
else:
break
turnir[igra[0]] = igra[1]
turnir[igra[2]] = igra[3]
n += 1
#print(n)
if igra[0] not in turnir:
turnir[igra[0]] = igra[1]
elif igra[2] not in turnir:
turnir[igra[2]] = igra[3]
тут возникает вопрос, как унифицировать ключ (как значения списка 0 и 2 поместить в одну переменную и значения 1 и 3 во вторую?
С проверкой что-то не так, но пока не могу догнать, как сделать правильно
FishHook
Июнь 24, 2021 14:51:25
Дайте, пожалуйста, условие задачи так, как оно для вас сформулировано, там наверняка нет ничего про словари
halo
Июнь 24, 2021 14:58:28
Напишите программу, которая принимает на стандартный вход список игр футбольных команд с результатом матча и выводит на стандартный вывод сводную таблицу результатов всех матчей.
За победу команде начисляется 3 очка, за поражение — 0, за ничью — 1.
Формат ввода следующий:
В первой строке указано целое число n n n — количество завершенных игр.
После этого идет n n n строк, в которых записаны результаты игры в следующем формате:
Первая_команда;Забито_первой_командой;Вторая_команда;Забито_второй_командой
Вывод программы необходимо оформить следующим образом:
Команда:Всего_игр Побед Ничьих Поражений Всего_очков
Конкретный пример ввода-вывода приведён ниже.
Порядок вывода команд произвольный.
Sample Input:
3
Спартак;9;Зенит;10
Локомотив;12;Зенит;3
Спартак;8;Локомотив;15
Sample Output:
Спартак:2 0 0 2 0
Зенит:2 1 0 1 3
Локомотив:2 2 0 0 6
Я пока хочу сложись все результаты каждой команды
halo
Июнь 24, 2021 15:02:50
Хотя, я сейчас вчитался и понял, что начал не с того ))
FishHook
Июнь 24, 2021 15:10:54
haloЯ вам дам подсказку:
result = {}
for team_name, points in [('team1', 3),
('team2', 1),
('team3', 0),
('team1', 1),
('team2', 1),
('team3', 1),
('team1', 3),
('team2', 0)]:
if team_name not in result:
result[team_name] = {'points': 0, 'wins': 0, 'draws': 0}
result[team_name]['points'] += points
print result
halo
Июнь 24, 2021 16:08:07
Дело в том, что по опыту, команд может быть 100…
Тогда такая конструкция не подойдет.
Надо ввод разбить на множества и поместить внутрь списка?
Я правильно понял?
FishHook
Июнь 24, 2021 16:14:18
подумайте еще раз
halo
Июнь 25, 2021 09:05:59
Перепутал, не множества, кортежи.
Но, все равно, не понятно, почему взято так.