2013-11-12 4 views
0

Итак, у меня есть файл ниже со следующими значениями. То, что я пытаюсь сделать, это поместить эти значения int в словарь.Простой файл в словарь

0 0 
0 1 
0 2 
0 3 
0 4 
1 1 
1 2 
1 3 
1 4 
1 5 
2 3 
2 4 
3 3 
4 5 
5 0 

Я хочу, чтобы мой словарь искать что-то вдоль линий ...

граф = {0: [0,1,2,3,4], 1: [1,2,3 , 4,5], 2: [3,4] .... и так далее.

В настоящее время я использую код из следующего вопроса.

Python - file to dictionary?

Но это не делает именно то, что я надеялся. Любая помощь будет большой.

+0

* Я в настоящее время с помощью кода из следующего вопроса * - от какого вопроса? – aga

+1

Нет следующего вопроса :) Посмотрите на collection.defaultdict с пустым списком в качестве значения по умолчанию. Должен сделать трюк –

+0

Извините, что не забудьте поставить ссылку. Обновлено – Scalahansolo

ответ

2

Использование collections.defaultdict:

>>> from collections import defaultdict 
>>> d = defaultdict(list) 
with open('input.txt') as f: 
    for line in f: 
     k, v = map(int, line.split()) 
     d[k].append(v) 


>>> d 
defaultdict(<type 'list'>, 
{0: [0, 1, 2, 3, 4], 
1: [1, 2, 3, 4, 5], 
2: [3, 4], 3: [3], 
4: [5], 
5: [0]}) 

С нормальной Dict вы можете использовать [dict.setdefault][2]:

with open('input.txt') as f: 
    for line in f: 
     k, v = map(int, line.split()) 
     d.setdefault(k, []).append(v) 
Смежные вопросы