Проблема с подсчетом голосов через словарь

Есть файл в котором находятся имя человека и количество набранных голосов
McCain 10
McCain 3
Alabama 19
Alabama 2
McCain 7

я пытаюсь открыть файл и добавить через цикл имя и сколько набрал человек голосов,вот что я наделал...

with open("input (1).txt","r") as f:
    dict_1 = {}
    for e in f.read().split():
        if e.isalpha():
            v = e
        elif e.isdigit():
            k = e
        try:
            dict_1.update({v:k})
            print(dict_1)
        except:
            print(dict_1)

но что_то пошло не так :(
помогите пожалуйста


Ответы (2 шт):

Автор решения: Zhihar

а чем не устраивает старый метод:

with open('input (1).txt') as f:
    lines = f.readlines()

    res = {}

    for line in lines:
        parts = line[:-1].split()
        res[parts[0]] = res.get(parts[0], 0) + int(parts[1])

через line[:-1] я отрезал \n (вроде он все таки во всех линиях присутствует), однако можно его убрать все таки

и можно сделать такой код:

for line in lines:
    parts = line.split()
    res[parts[0]] = (0 if parts[0] not in res else res[parts[0]]) + int(parts[1])
→ Ссылка
Автор решения: Іван Шнір

Так должно всё получится.

with open("input (1).txt","r") as f:
    dict_1 = {}
    for e in f.read().split():
        if e.isalpha():
            v = e
        elif e.isdigit():
            k = e
        try:
            dict_1[k] = v
        except Exception as e:
            print(e)
    print(dict_1)

Или же вот ваш чу-чуть поправлений:

with open("input (1).txt","r") as f:
    dict_1 = {}
    for e in f.read().split():
        if e.isalpha():
            v = e
        elif e.isdigit():
            k = e
            try:
                dict_1.update({k:v}) #Просто надо било k и v поменять местами
            except:
                pass
    print(dict_1) # и перенести сюда вивод dict_1
→ Ссылка