Python. Сумма значений с одинаковым ключом
Всем привет, никак не могу разобраться, как в Python поcчитать сумму значений, которые имеют одинаковы ключи.
Допустим пользователь вводит: Миша 2
Гриша 1
Миша 1
На выходе мы должны получить: Миша 3
Гриша 1
Помогите, пожалуйста. Прикрепил фрагмент кода с вводом.
quantity = int(input('Введите число голосующих регионов:'))
votes = dict([input('Введите имя кандидата и количество голосов через пробел:').split() for i in range(quantity)])
Ответы (2 шт):
Автор решения: nomnoms12
→ Ссылка
Предлагаю воспользоваться методом словаря get, возвращая в случае отсутствия ключа 0.
Пример:
quantity = int(input('Введите число голосующих регионов:'))
d = {}
for _ in range(quantity):
k, v = input('Введите имя кандидата и количество голосов через пробел:').split()
d[k] = d.get(k, 0) + int(v)
print(d)
Автор решения: CrazyElf
→ Ссылка
Можно через Counter как-то так. Как совместить с вашим кодом надеюсь разберётесь:
from collections import Counter
l = [('Миша', '2'), ('Гриша', '1'), ('Миша', '1')]
c = Counter()
[c.update({k: int(v)}) for k,v in l]
print(c)
Вывод:
Counter({'Миша': 3, 'Гриша': 1})
Когда вы пытаетесь создать словарь из всего списка, значение с повторяющимся ключом просто затирает предыдущее значение.