python - 需要帮助将列表理解转换为 lambda 函数

问题描述 投票:0回答:1

我正在学习和练习 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']

python lambda list-comprehension
1个回答
0
投票

filtered_fruits = list(filter(lambda Fruit: sum(1 for char infruit if char in "aeiouAEIOU") >= 3,fruits))

这应该是结果

[‘番石榴’、‘菠萝’、‘柑橘’]

© www.soinside.com 2019 - 2024. All rights reserved.