Python 打印一个字符重复多少次的最快方法是什么?

Python 打印一个字符重复多少次的最快方法是什么?,python,python-3.x,Python,Python 3.x,我正在制作一个程序,告诉我英语中的每个字母被重复了多少次。我确实做到了,但我很确定有一个更快的方法 with open('random.txt', 'r') as f: f_contents = f.read() print(f_contents.count('a')) print(f_contents.count('b')) print(f_contents.count('c')) print(f_contents.count('d')) print(f_contents.count('e')

我正在制作一个程序,告诉我英语中的每个字母被重复了多少次。我确实做到了,但我很确定有一个更快的方法

with open('random.txt', 'r') as f:
f_contents = f.read()
print(f_contents.count('a'))
print(f_contents.count('b'))
print(f_contents.count('c'))
print(f_contents.count('d'))
print(f_contents.count('e'))
print(f_contents.count('g'))
print(f_contents.count('h'))
print(f_contents.count('i'))
print(f_contents.count('j'))
print(f_contents.count('k'))
print(f_contents.count('l'))
print(f_contents.count('m'))
print(f_contents.count('n'))
print(f_contents.count('o'))
print(f_contents.count('p'))
print(f_contents.count('q'))
print(f_contents.count('r'))
print(f_contents.count('s'))
print(f_contents.count('t'))
print(f_contents.count('u'))
print(f_contents.count('v'))
print(f_contents.count('w'))
print(f_contents.count('x'))
print(f_contents.count('y'))
print(f_contents.count('z'))

创建一个包含所有字母的列表(或者在库中在线查找一个字母)并迭代

 letters = ["a", "b", "c", "d", "e", "f", "g"] # and so on...
 # or use this:
 letters = string.ascii_lowercase # as Cory Kramer pointed out
 for letter in letters:
     print(f_contents.count(letter))
使用一个。(可选)也可以使用使其更干燥:

from collections import Counter
from string import ascii_lowercase

with open('random.txt', 'r') as f:
    f_contents = f.read()
    counts = Counter(f_contents)
    for c in ascii_lowercase:
        print(counts[c])

这将在一次迭代中收集所有计数,同时重复调用
str.count
每次迭代整个字符串。

收集。计数器
是您在这里的最佳选择,但在任何情况下,即使
用于字符串中的字母。ascii\u小写:
也比手动键入每个字母好嗯,您要求“更快”然后接受一个慢得多的答案?不需要
字母
作为
字符串。ascii_lowercase
已经包含了sequences,但我不知道,它将添加到答案中。主要的一点是使用循环思想,最后一次
print
可以是
for letter,count in counts.items():print(letter,count)
,这取决于。如果你像OP的代码所建议的那样对零计数感兴趣,你就必须迭代整个域。这是真的,很好的观点这看起来你不知道str.count的速度有多快。@superbrain,对于一个足够大的字符串和足够大的字母表,线性算法将胜过二次算法=)同样,您希望展示合理的通用方法。