2015-10-29 3 views
0

У меня есть текстовый файл, в котором элементы хранятся в две колонки, как следующее:Defaultdict Добавление данных трюк

a 1,a 3,a 4,b 1,b 2,b 3,b 4,c 1,c 2.... etc 

Файл содержит два столбца, один ключ a, b, c и т.д., а другой элементы 1, 2, 3, 4 и т.д.

я сохранил эти элементы с помощью defaultdict и приложил их. Элементы в Словаре по умолчанию являются:

defaultdict(<type 'list'>, `{'a': ['0', '1', '2', '3', '4'], 'c': ['1', '2'], 'b': ['1', '2', '3', '4']}`) 

Я использовал следующую команду:

from collections import defaultdict 
positions = defaultdict(list) 

with open('test.txt') as f: 
    for line in f: 
     sob = line.split() 
     key=sob[0] 
     ele=sob[1] 
     positions[key].append(ele) 
    print positions 
+4

А что это вопрос? – soon

+0

Я хочу, чтобы defaultdict был: defaultdict (, '{'a': ['0', '1', '2', '3', '4'], 'b': ['1', ' 2 ',' 3 ',' 4 '],' c ': [' 1 ',' 2 ']} ') –

+0

@SurachitSarkar проверить мое решение – Hackaholic

ответ

1

InstEd из defaultdict вы можете использовать OrderedDict

from collections import OrderedDict 
positions = OrderedDict() 
with open('test.txt') as f: 
    for line in f: 
     key, ele = line.strip().split() 
     positions[key] = positions.get(key, []) + [ele] 
print positions 
+0

эй, есть только два столбца в файле без запятых, я написал строки, разделенные запятой. –

+0

Можете ли вы показать, как файл ввода ur точно выглядит как – Hackaholic

+0

@SurachitSarkar, теперь мой код должен работать на вас – Hackaholic

Смежные вопросы