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

Python元音过滤器,附加到字符串,python,list,function,lambda,Python,List,Function,Lambda,我环顾四周,看到了无数这样的问题,但都不知道我是如何做到这一点的,所以请温柔一点 基本上,我是想把句子中的元音添加到列表中???然后打印列表,所有这些都是通过使用一个名为isVowel的lambda和一个名为vowelFilter的函数实现的 我真的不确定如何使用lambda来实现这一点,而且到目前为止我所做的似乎都不起作用,下面是我的代码 sentence = "The quick brown fox jumps over the bridge" vowels = "aeiouAEIOU" f

我环顾四周,看到了无数这样的问题,但都不知道我是如何做到这一点的,所以请温柔一点

基本上,我是想把句子中的元音添加到列表中???然后打印列表,所有这些都是通过使用一个名为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%像我的,所以请友善一点


谢谢

您可以使用带有条件的列表理解。不需要lambda:

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


我希望这可以帮助您

在这里使用lambda表达式不是很符合python,但是如果您必须:

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))
从:

lambda\u expr::=“lambda”[参数列表]:表达式

old\u lambda\u expr::=“lambda”[参数列表]:old\u表达式

Lambda表达式(有时称为Lambda形式)具有相同的 作为表达式的句法位置。它们是创建的简写 匿名函数;表达式lambda参数:表达式 生成一个函数对象。未命名对象的行为类似于函数 用定义的对象

def名称(参数):
返回表达式

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


如果必须使用lambda,那么您可以这样做(这与其他两个答案没有区别)


为什么要/需要使用
lambda
?听起来像。在我的电脑上运行良好。怎么了?嗨,卢卡斯,我被特别要求使用lambda:)和Sheng真的吗?!根本不为我工作!你好,iCodez,谢谢你的回复。我现在不知道这是不是我的笔记本电脑,但我已经使用了lambda,你是如何显示的,仍然没有打印?我遗漏了什么吗?@RyanJones-请看我的编辑。我想你忘了在脚本末尾调用函数了。如果你可以使用函数,为什么要使用lambda?@CoDEmanX-这很可能是学校布置的关于lambda的作业。具体来说,这是一个需要修改的过去的论文问题:)
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))
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']