python - 在文件中查找单词出现次数

12 投票
6 回答
32568 浏览
提问于 2025-04-17 17:08

我正在尝试找出一个文件中出现的单词数量。我有一个文本文件(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})

撰写回答