例如,假设我们有一个名为letters的.txt文件,其中包含
a
b
b
c
d
d
d
d
我如何创建一个字典,其中的键是文件中找到的单个字母,值是每个字母出现的次数?例如,a将是一个键,相应的值将为1,而b也是一个键,其值为2.
我们刚开始学习打开文件和创建词典,所以我想我会从像
这样的东西开始file = open('letters.txt', 'rt')
我不太确定rt部分是否正确,但我们必须搜索“文件”,
for letter in file:
但是我不太确定如何搜索字母,使它们成为键,然后将字母出现的次数添加到字典中的值。有什么建议吗?
答案 0 :(得分:1)
Python在名为dict
的{{1}}模块中对collections
提供了方便的扩展,可以完全满足您的要求:
Counter
如果你真的希望它是>>> from collections import Counter
>>> with open('letters.txt') as f:
... c = Counter(map(str.strip, f))
>>> c
Counter({'a': 1, 'b': 2, 'c': 1, 'd': 4})
:
dict
答案 1 :(得分:1)
如果这是一个实际问题,你可能应该做的事情如下:
from collections import Counter
counts = Counter([ln.strip() for ln in open('letters.txt')])
甚至
counts = Counter(open('letters.txt').read())
(这也会计算换行符)。
当你显然正在做一个学习练习时,你可能正在寻找类似的东西:
counts = dict()
for line in open('letters.txt'):
letter = line[0]
counts[letter] = counts.get(letter, 0) + 1