根据python中单词中元音的数量对列表进行排序

根据python中单词中元音的数量对列表进行排序,python,list,sorting,python-2.7,Python,List,Sorting,Python 2.7,如何根据python中单词中元音的数量对列表进行排序 我还没有在任何网站上找到答案。 单词应按元音数量的降序排列。使用或列表。排序 使用计算元音数的函数指定键。(函数的返回值用作比较键。) 将reverse=True参数按降序传递 >>> word_list = ['banana', 'apple', 'pineapple'] >>> sorted(word_list, ... key=lambda word: sum(ch in 'aeiou'

如何根据python中单词中元音的数量对列表进行排序

我还没有在任何网站上找到答案。 单词应按元音数量的降序排列。

使用或
列表。排序

使用计算元音数的函数指定
。(函数的返回值用作比较键。)

reverse=True
参数按降序传递

>>> word_list = ['banana', 'apple', 'pineapple']
>>> sorted(word_list,
...        key=lambda word: sum(ch in 'aeiou' for ch in word),
...        reverse=True)
['pineapple', 'banana', 'apple']
使用或
list.sort

使用计算元音数的函数指定
。(函数的返回值用作比较键。)

reverse=True
参数按降序传递

>>> word_list = ['banana', 'apple', 'pineapple']
>>> sorted(word_list,
...        key=lambda word: sum(ch in 'aeiou' for ch in word),
...        reverse=True)
['pineapple', 'banana', 'apple']

您可以通过创建以下两个函数来实现

def vowel_count_test(string):
    count=0
    for z in string:
        if z in ['a','e','i','o','u']:
            count=count+1
    return count
def sort_by_vowel_count(words):
    return words.sort(key=vowel_count_test,reverse=True)

您可以通过创建以下两个函数来实现

def vowel_count_test(string):
    count=0
    for z in string:
        if z in ['a','e','i','o','u']:
            count=count+1
    return count
def sort_by_vowel_count(words):
    return words.sort(key=vowel_count_test,reverse=True)

小细节;('a','e','i','o','u')可以写成'aeiou'@eelcoogendoorn,你是对的。我更新了代码。谢谢。请您解释一下“key=lambda word:sum(ch-in('a','e','i','o','u')代表ch-in-word)”这里的“word”是什么意思?@user3194076,列表中的每一项都传递给key函数
word
是项目。(λ参数)次要细节;('a','e','i','o','u')可以写成'aeiou'@eelcoogendoorn,你是对的。我更新了代码。谢谢。请您解释一下“key=lambda word:sum(ch-in('a','e','i','o','u')代表ch-in-word)”这里的“word”是什么意思?@user3194076,列表中的每一项都传递给key函数
word
是项目。(λ的参数)