簡體   English   中英

Python元音過濾器,附加到字符串

[英]Python vowel filter, appending to string

我已經環顧四周,看到了一百萬個這樣的問題,但沒有一個我想要做到這一點,所以請溫柔!

基本上我是想把一個句子中的元音添加到列表中??? 並使用名為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']

只是

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

我希望這可以幫到你

在這里使用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))

來自文檔

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表達式創建的函數不能包含語句。

如果必須使用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']

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM