2015-03-11 2 views
0

У меня есть словарь, который создается путем чтения в ключах и значениях из файла csv. Файл CSV выглядит следующим образом:Преобразование значений в словарь в целые числа - python

Alice, 8 
Tom, 10 
Ben, 8 
Ben, 9 
Alice, 10 
Tom, 8 

Это читается в пустой словарь под названием баллов:

scores={} 
file = open("file.csv","r") 
for line in csv.reader(file): 
    scores.setdefault(line[0], []).append(line[1]) 

Это создает словарь, который выглядит следующим образом:

scores = {'Tom': ['10', '8'], 'Ben': ['8', '9'], 'Alice': ['8', '10']} 

Как я могу добавьте значения в этот словарь как целые числа, чтобы словарь выглядел так:

scores = {'Tom': [10, 8], 'Ben': [8, 9], 'Alice': [8, 10]} 
+2

Просто используйте 'Int()' для преобразования 'линии [1] '. Кстати, я рекомендую использовать 'с открытым (filename) в качестве файла:' вместо 'open()', поскольку для последнего требуется ручное 'close()' – Zhiya

+0

'scores = collections.defaultdict (list)' будет избегать необходимости установить по умолчанию –

ответ

2

Добавить конверт int().

scores.setdefault(line[0], []).append(int(line[1])) 

Кстати, вы могли бы использовать аккуратную функцию Python для извлечения строки названных переменных, например, так:

for name, age in csv.reader(file): 
    scores.setdefault(name, []).append(age) 
Смежные вопросы