python - 在文件中查找单词出现次数
我正在尝试找出一个文件中出现的单词数量。我有一个文本文件(TEST.txt
),文件的内容如下:
ashwin programmer india
amith programmer india
我期望的结果是:
{ 'ashwin':1, 'programmer ':2,'india':2, 'amith ':1}
我使用的代码是:
for line in open(TEST.txt,'r'):
word = Counter(line.split())
print word
我得到的结果是:
Counter({'ashwin': 1, 'programmer': 1,'india':1})
Counter({'amith': 1, 'programmer': 1,'india':1})
有没有人能帮我一下?提前谢谢你们。
6 个回答
5
你现在是在逐行处理文件,每次都在调用Counter。其实你想让Counter一次性处理整个文件。可以试试这样:
from collections import Counter
with open("TEST.txt", "r") as f:
# Used file context read and save into contents
contents = f.read().split()
print Counter(contents)
8
这段内容是关于编程的问题,可能涉及到一些技术细节。我们来看看它是怎么说的。
首先,提到的代码块
from collections import Counter;
cnt = Counter ();
for line in open ('TEST.txt', 'r'):
for word in line.split ():
cnt [word] += 1
print cnt
可能包含了一些示例代码或特定的编程语法。对于初学者来说,理解这些代码的作用是很重要的。
通常,编程中的问题可能会涉及到如何使用某个功能,或者如何解决在写代码时遇到的错误。很多时候,大家会在网上寻找答案,比如在StackOverflow这样的论坛上。
在这些讨论中,大家会分享自己的经验,提出问题,并给出解决方案。对于刚开始学习编程的人来说,看到其他人遇到类似的问题并找到解决办法,可以帮助他们更快地理解编程的逻辑。
总之,编程就像是解谜,遇到问题时,寻找答案和学习新知识是非常重要的。希望你能从中获得启发,继续探索编程的世界!
18
使用Counter的update
方法。举个例子:
from collections import Counter
data = '''\
ashwin programmer india
amith programmer india'''
c = Counter()
for line in data.splitlines():
c.update(line.split())
print(c)
输出结果:
Counter({'india': 2, 'programmer': 2, 'amith': 1, 'ashwin': 1})