Форум сайта python.su
Приветствую!
Пока не придумал как сделать лучше.
Есть запрос ввода, который помещен в цикл while.
каждая итерация добавляет в словарь ключ и его значение.
Как сделать, чтобы цифровые значения ключей складывались, если встречаются одинаковые ключи?
Офлайн
halo
Как сделать, чтобы цифровые значения ключей складывались, если встречаются одинаковые ключи?
Офлайн
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 во вторую?
С проверкой что-то не так, но пока не могу догнать, как сделать правильно
Отредактировано halo (Июнь 24, 2021 14:57:09)
Офлайн
Дайте, пожалуйста, условие задачи так, как оно для вас сформулировано, там наверняка нет ничего про словари
Офлайн
Напишите программу, которая принимает на стандартный вход список игр футбольных команд с результатом матча и выводит на стандартный вывод сводную таблицу результатов всех матчей.
За победу команде начисляется 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
Я вам дам подсказку:
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
Офлайн
Дело в том, что по опыту, команд может быть 100…
Тогда такая конструкция не подойдет.
Надо ввод разбить на множества и поместить внутрь списка?
Я правильно понял?
Офлайн
подумайте еще раз
Офлайн
Перепутал, не множества, кортежи.
Но, все равно, не понятно, почему взято так.
Офлайн