2017-10-10 56 views
1

這是一種提取物(完整文件具有大約8K的觀察結果)我的輸入txt文件的,含有3族元素(姓名,一些標識符,年)由製表符分隔:輸出從轉換列表迭代到字典

steve jobs  7653596 2007 
john hancock 7653596 2007 

我試圖把在字典中使用列表:

dictList = [] 
with open('filename.txt') as fo: 
    for line in fo: 
     elements = line.rstrip().split('\t')[0:] 
     dictList.append(dict(zip(elements[0::3], elements[1::2]))) 
     print dictList 

輸出執行上述後:

{'steve jobs': '7653596'} 
{'steve jobs': '7653596', 'john hancock': '7653596'} 

我不知道爲什麼輸出會給我第一個項目的結果,然後是第二個項目。我只需要從輸出生成的最後一行。任何想法我應該怎麼做呢?

回答

0

您正在循環的每次迭代中而不是之後打印字典。只是縮進它,你應該沒問題:

dictList = [] 
with open('filename.txt') as fo: 
    for line in fo: 
     elements = line.rstrip().split('\t')[0:] 
     dictList.append(dict(zip(elements[0::3], elements[1::2]))) 

    print dictList # Here 
+1

非常感謝你Mureinik,我犯了這樣一個愚蠢的錯誤.... –