2015-04-09 2 views
1

У меня есть текстовый файл, который имеет следующую структуру:Включение текстового файла в словарь

mom:2 
dad:3 
mom:4 
dad:2 
me:4 

И мне нужно сделать словарь, который будет отображать каждое имя только один раз, но добавление числовых значений вместе. В этом случае это будет выглядеть так:

{dad':5, 'me':4, 'mom':6} 

Как я должен подойти к этой проблеме? Я попытался

d = {} 
    try: 
    file = open(file.txt, "r") 
    for line in file: 
     (a, b) = line.split(":") 
     d[a] = float(b) 
    except IOError: 
    print() 

, но я не нашел способ подсчитать значение.

+4

Это домашнее задание? что ты уже испробовал? – ventsyv

+0

Я вижу, чего вы хотите достичь, но словарь, похоже, не является структурой данных, которую вы хотели бы использовать здесь, поскольку словарь не имеет порядка. – SmeltQuake

+2

Рассмотрите возможность публикации [MCVE] (http://stackoverflow.com/help/mcve) –

ответ

1
with open('file.txt', 'r') as f:               
    fp = f.readlines()    

t = [l.strip().split(':') for l in fp if l != '\n']                             
d = {}                     
for l in t:                   
    d[l[0]] = d.setdefault(l[0], 0) + int(l[1]) 
Смежные вопросы