使用Counter计算带空格的字符串的出现次数

时间:2013-09-05 17:52:34

标签: python counter

我有一个大的制表符分隔文件。我想计算整个文件的第三列中的任何字符串的出现次数。总共可能有数十万个不同的字符串。我认为Counter对此有好处,而且我非常接近我想要的东西:

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 bar,但我想要1 foo,1 bar,1 foo bar。有什么建议 ?我没有必要使用Counter我认为这是最好的,但如果有一种更有效的方式我会喜欢听它。

1 个答案:

答案 0 :(得分:1)

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

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