1

テキストファイルに出現する各単語の数を辞書に保存したいと考えています。つまり

fob= open('D:/project/report.txt','r')

行をリストに保存することはできますが、これらの行を個々の単語に分割し、最終的にそれらの数を (辞書のように) 保存する必要があります。

lst=fob.radlines()

#This doesn't work, gives error
#AttributeError: 'list' object has no attribute 'split' 
mylst=lst.split()

どうやってやるの ?そして、これを行う効率的な方法は何ですか?

4

1 に答える 1

1

Python の場合2.7+

from collections import Counter

with open('D:/project/report.txt','r') as fob:
    c = Counter(word for line in fob for word in line.split())

Python の場合2.5+

from collections import defaultdict
dd = defaultdict(int)

with open('D:/project/report.txt','r') as fob:
    for line in fob:
        for word in line.split():
            dd[word] += 1

古いニシキヘビや嫌いな人向けdefaultdict

d = {}

with open('D:/project/report.txt','r') as fob:
    for line in fob:
        for word in line.split():
            d[word] = d.get(word, 0) + 1
于 2013-04-01T03:17:42.443 に答える