从文本文件中创建字典

时间:2016-11-18 01:55:44

标签: python python-3.x dictionary

例如,假设我们有一个名为letters的.txt文件,其中包含

a
b
b
c
d
d
d
d

我如何创建一个字典,其中的键是文件中找到的单个字母,值是每个字母出现的次数?例如,a将是一个键,相应的值将为1,而b也是一个键,其值为2.

我们刚开始学习打开文件和创建词典,所以我想我会从像

这样的东西开始
file = open('letters.txt', 'rt') 

我不太确定rt部分是否正确,但我们必须搜索“文件”,

for letter in file:

但是我不太确定如何搜索字母,使它们成为键,然后将字母出现的次数添加到字典中的值。有什么建议吗?

2 个答案:

答案 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