2015-10-29 50 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