Skip to main content
 首页 » 编程设计

python之计算一系列项目,python

2025年05月04日18qq78292959

任务是定义一个函数count_vowels(text),它接受一个字符串text,计算 文本中的元音(使用 Python 字典进行计数),并返回 作为字符串的元音频率信息。 示例:

>>> count_vowels('count vowels') 
'e: 1\nu: 1\no: 2' 
>>> print count_vowels('count vowels') 
e: 1 
u: 1 
o: 2 

到目前为止我已经想出了:

>>> def count_vowels(text): 
    counts = nltk.defaultdict(int) 
    for w in text: 
        if w in 'aeoiu': 
            counts[w] += 1 
    return counts 
 
 
>>> count_vowels('count vowels') 
defaultdict(<type 'int'>, {'e': 1, 'u': 1, 'o': 2}) 

那么,我的代码有什么问题,我如何获得与示例中相同的结果?

请您参考如下方法:

如果您使用的是 Python 2.7,请尝试使用计数器:

from collections import Counter 
counts = Counter(c for c in 'count vowels' if c in 'aeoiu') 
for k, v in counts.iteritems(): 
    print k, v 

这导致输出:

e 1 
u 1 
o 2 

如果您使用的是较早版本的 Python,您仍然可以使用 defaultdict,只需使用相同的 iteritems() 循环即可:

for k, v in counts.iteritems(): 
    print k, v