我正在学习和练习 lambda 函数,遇到了一个我无法解决的问题。
Q - 创建一个包含 2 个以上元音的水果列表。
fruits = ['mango', 'kiwi', 'strawberry', 'guava', 'pineapple', 'mandarin orange']
我使用列表理解的解决方案:
result = [fruit for fruit in fruits if len([True for char in fruit if char in "aeiou"]) > 2]
这效果很好,但我需要使用 lambda 函数来实现相同的输出
我使用 lambda 函数的尝试:
result2 = list(filter(lambda x : len(set("aeiou") & set(x)) > 2, fruits))
result2
创建一个包含超过 2 个 different 元音的水果列表,但我需要一个包含仅包含 2 个以上元音的水果的列表。
预期输出 -
['guava', 'pineapple', 'mandarin orange']
['pineapple', 'mandarin orange']
filtered_fruits = list(filter(lambda Fruit: sum(1 for char infruit if char in "aeiouAEIOU") >= 3,fruits))
这应该是结果
[‘番石榴’、‘菠萝’、‘柑橘’]