在Python3中,如何从短语列表中计算和提升元音?

在Python3中,如何从短语列表中计算和提升元音?,python,Python,在下面给出的列表中,短语,我想按升序打印最常用的元音 我在下面写了这段代码,但我不知道如何计算元音并按升序打印它们 我不确定len的情况,我认为需要更改代码,添加升序 phrase= ['world','good','question'] def phrase(): vowels = ('a','u','i','o','e') count=0 for i in range(0,len(phrase)): if phrase[i]==vowels[i]:

在下面给出的列表中,
短语
,我想按升序打印最常用的元音

我在下面写了这段代码,但我不知道如何计算元音并按升序打印它们

我不确定len的情况,我认为需要更改代码,添加升序

phrase= ['world','good','question']
def phrase():
    vowels = ('a','u','i','o','e')
    count=0
    for i in range(0,len(phrase)):
        if phrase[i]==vowels[i]:
            count=count+1
            print (count)
phrase()
你想用;它将为您计算:

from collections import Counter

def count_vowels(phrase):
    vowel_counts = Counter()
    vowels = set('auioe')

    for word in phrase:
        vowel_counts.update(c for c in word if c in vowels)

    for vowel, count in vowel_counts.most_common():
        print '{}: {}'.format(vowel, count)
我对元音使用了
set()
,因为这有助于加快成员资格(
)测试

请注意,您不能将函数和列表命名为相同的名称<代码>短语()
替换了列表
短语
。将函数命名为不同的名称

演示:

你想用;它将为您计算:

from collections import Counter

def count_vowels(phrase):
    vowel_counts = Counter()
    vowels = set('auioe')

    for word in phrase:
        vowel_counts.update(c for c in word if c in vowels)

    for vowel, count in vowel_counts.most_common():
        print '{}: {}'.format(vowel, count)
我对元音使用了
set()
,因为这有助于加快成员资格(
)测试

请注意,您不能将函数和列表命名为相同的名称<代码>短语()
替换了列表
短语
。将函数命名为不同的名称

演示:


这有一个内在的东西。调用
count

我想你想要这样的东西:

def countVowels(word): # Where word is a string
    counted = {'a':0,'e':0,'i':0,'o':0,'u':0} #dictionary to store counts in
    vowels = ['a','e','i','o','u'] # this line could also be vowels = counted.keys()...lol
    for letter in word:
         for vowel in vowels:
              counted[vowel] = word.count(vowel)
    return counted
如果你想在一个列表上重复这个。。。照办

for word in listOfWords:
    print word , countVowels(item)

我发现自己经常做的是,当我需要把一大堆事情列在一个清单上时,我会确保我能完美地完成一个例子。。。然后我将它们放入一个列表中,并在其上绑定一个for循环。

这是一个内置的东西。调用
count

我想你想要这样的东西:

def countVowels(word): # Where word is a string
    counted = {'a':0,'e':0,'i':0,'o':0,'u':0} #dictionary to store counts in
    vowels = ['a','e','i','o','u'] # this line could also be vowels = counted.keys()...lol
    for letter in word:
         for vowel in vowels:
              counted[vowel] = word.count(vowel)
    return counted
如果你想在一个列表上重复这个。。。照办

for word in listOfWords:
    print word , countVowels(item)

我发现自己经常做的是,当我需要把一大堆事情列在一个清单上时,我会确保我能完美地完成一个例子。。。然后我将它们放入一个列表中,并在其上绑定一个for循环。

我在编写此命令时收到一个错误:来自Collections导入计数器,错误是:ImportError:没有名为“Collections”的模块@SN:仔细检查拼写。它是
集合
,而不是
集合
(缺少
c
)。它是
计数器
,大写
C
。我在写这封信时收到一个错误:来自Collections导入计数器,错误是:ImportError:没有名为“Collections”的模块@SN:仔细检查拼写。它是
集合
,而不是
集合
(缺少
c
)。它是
计数器
,大写
C