首页 > 解决方案 > Python 3 - 计算文本文档中的字母/单词/快速问题

问题描述

我想知道如何在不使用任何集合的情况下获得与我在下面列出的代码相同的结果,或者让某人解释 Counter 集合内部发生的事情(以代码或以不混淆的方式),因为我似乎无法在任何地方找到它。此代码用于读取名为 juliet.txt 的文本文件。我试图让它计算文档中的字母和空格的数量,然后将其打印出来。

代码:

from collections import Counter
   text = open('juliet.txt', 'r').read()
   letters = 0
   counter = Counter(text)
   spacesAndNewlines = counter[' '] + counter['\n']

    while letters < len(text):
        print (text[letters])
        letters += 1
    while letters == len(text):
    print (letters)
    letters += 1
    print (spacesAndNewlines)

标签: pythonpython-3.x

解决方案


对我来说听起来像是一个家庭作业问题,在这种情况下,我回答你不会对你有任何好处。

letters = {}
with open('juliet.txt') as fh:
   data = fh.read()
for char in data:
   if char in letters:
       letters[char] = 1
    else:
        letters[char] += 1
print(letters)

这使用标准字典 - 通常我会使用 adefaultdict但由于某些奇怪的原因你不喜欢collections. 有了 ,defaultdict您就不需要进行费力的测试来查看 是否char已经在字典中了。


推荐阅读