2013-09-05 62 views
1

我有一個大的製表符分隔的文件。我想統計整個文件第三列中任何字符串的出現次數。總共可能有數十萬個不同的字符串。我認爲計數器會對此很好,而且我非常接近我想要的:使用計數器計算字符串空格的發生率

from collections import Counter 
import csv 

with open('samfile.sam') as samFile: 
    sam = csv.reader(samFile, dialect='excel-tab') 
    c=Counter() 
    for row in sam: 
     c.update(row[2].split()) 

問題是某些字符串有空格。它將它分解成兩個字符串並計數。因此,如果這是我感興趣的列:

foo 
bar 
foo bar 

計數器將2 FOO,2杆,但我想1個FOO,1條,1條FOO。有什麼建議麼 ?我不需要使用Counter,只是認爲這是最好的,但如果有一種更有效的方式,我很樂意聽到它。

+2

不要使用'行[2] .split()'....? –

+0

如果我不使用.split它統計單個字母更糟糕 –

回答

1

不要分裂在第三列中的字符串:

for row in sam: 
    c[row[2]] += 1 
+0

謝謝我認爲這是簡單的東西我失蹤 –