Python元音过滤器,附加到字符串

时间:2014-04-24 20:10:53

标签: python list function lambda

我看了一眼,看到了一百万个这样的问题,但没有一个我是怎么做的,所以请温柔一点!

基本上我试图将一个句子中的元音添加到 list ??? 并打印列表,所有这一切都是通过使用名为isVowel的lambda和一个名为vowelFilter的函数。

我真的不确定如何使用lambda做到这一点,到目前为止我所做的似乎不起作用,这是我的代码;

sentence = "The quick brown fox jumps over the bridge"
vowels = "aeiouAEIOU"
finalVowel = []
def vowelFilter(sentence):
        for letter in sentence:
                if letter in vowels:
                        finalVowel.append(letter)
        return finalVowel

你们能否对此有所了解?我再次清楚地知道这已被问过1000000000倍,但没有100%像我一样,所以请善待!

由于

4 个答案:

答案 0 :(得分:1)

您可以将列表理解与条件一起使用。不需要lambda:

>>> l = [v for v in sentence if v in vowels]
>>> print l
['e', 'u', 'i', 'o', 'o', 'u', 'o', 'e', 'e', 'i', 'e']

答案 1 :(得分:1)

只需

finalVowel = [x for x in sentence if x in vowels]

我希望这可以帮到你

答案 2 :(得分:0)

在这里使用lambda表达式不是非常pythonic,但如果你必须:

sentence = "The quick brown fox jumps over the bridge"
vowels = "aeiouAEIOU"
finalVowel = []

# Return True if arg is in vowels; otherwise, return False
isVowel = lambda arg: arg in vowels

def vowelFilter(sentence):
    for letter in sentence:
        if isVowel(letter):  # Call the lambda to test if letter is a vowel
            finalVowel.append(letter)
    return finalVowel

print (vowelFilter(sentence))

来自docs

  

lambda_expr ::= "lambda" [parameter_list]: expression

     

old_lambda_expr ::= "lambda" [parameter_list]: old_expression

     

Lambda表达式(有时称为lambda表单)具有相同的表达式   句法位置作为表达。它们是创造的简写   匿名函数;表达式lambda arguments:expression   产生一个功能对象。未命名的对象就像一个函数   用

定义的对象      

def name(arguments): return expression

     

有关参数列表的语法,请参阅函数定义一节。   请注意,使用lambda表达式创建的函数不能包含   语句。

答案 3 :(得分:0)

如果必须使用lambda那么你就可以这样做(这与其他两个答案没有什么不同)

vowel_filter = lambda sent: [x for x in sent if x in vowels]
vowel_filter(sentence)
>>> ['e', 'u', 'i', 'o', 'o', 'u', 'o', 'e', 'e', 'i', 'e']

finalVowel = vowel_filter(sentence)
print finalVowel
>>> ['e', 'u', 'i', 'o', 'o', 'u', 'o', 'e', 'e', 'i', 'e']