2015-10-29 47 views
0

我有哪里元素存储在两个列如下所示的文本文件:Defaultdict追加招

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

该文件包含两列,一个是关键abc等,另一种是元素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

你可以显示,你的输入文件如何看起来像 – Hackaholic

+0

@SurachitSarkar,现在我的代码应该会为你工作 – Hackaholic