Python 3.0 - 如何输出哪个字符最多?

时间:2016-02-14 19:37:48

标签: python charactercount

所以我能够创建一个程序来计算我计算机上的文本文件中元音的数量(特别是e o o)。但是,我无法弄清楚我的生活如何显示哪一个发生最多。我以为我会说像

{{ email.body }}

我不太确定这一步是什么。 我基本上希望它最后输出说“字母,我,在文本文件中发生的最多”

for ch in 'i':
    return numvowel?

5 个答案:

答案 0 :(得分:3)

如果你想显示哪一个发生最多,你必须保持每个个别元音的数量,而不是像你所做的那样只计算一个总数。

保留3个单独的计数器(你关心的3个元音各一个)然后你可以通过总结得到总数或者如果你想找出哪个元音发生最多,你可以简单地比较3个计数器到找出来。

答案 1 :(得分:1)

答案 2 :(得分:1)

你可以这样做:

vowels = {} # dictionary of counters, indexed by vowels

for ch in contents:
    if ch in ['i', 'e', 'o']:
        # If 'ch' is a new vowel, create a new mapping for it with the value 1
        # otherwise increment its counter by 1
        vowels[ch] = vowels.get(ch, 0) + 1

print("'{}' occured the most."
    .format(*[k for k, v in vowels.items() if v == max(vowels.values())]))

答案 3 :(得分:1)

Python声称“包含电池”,这是一个经典案例。班级collections.Counter几乎可以做到这一点。

from collections import Counter

with open('file.txt') as file_
    counter = Counter(file_.read())

print 'Count of e: %s' % counter['e']
print 'Count of i: %s' % counter['i']
print 'Count of o: %s' % counter['o']

答案 4 :(得分:0)

vowels = 'eio',然后

{ i: contents.count(i) for i in vowels }

对于vowels中的每个项目,计算contents中的出现次数,并将其作为结果字典的一部分添加(请注意在理解中包装大括号)。