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