python - 将Python中定义的函数更改为lambda函数

标签 python python-3.x

def char(word):
    lower = word.lower()
    for letters in lower:
        number = letters.count('a')
    return(number)

我上面有一个定义的函数,我正在尝试将其更改为 lambda 函数。我该怎么做呢? :)

<小时/>

(已更新)下面这个函数怎么样?我试图计算一个单词中所有的“a”,但看看评论,我似乎错了。如果下面的代码方向正确,如何转换为 lambda 函数?

def number_of_vowels(word):
    i = 0
    lower = word.lower()
    for char in lower:
        if char in 'a':
            i += 1
    return(i)   

最佳答案

您的代码:

def number_of_vowels(word):
    i = 0
    lower = word.lower()
    for char in lower:
        if char in 'a':
            i += 1
    return(i)   

只是一个很长的拼写方式:

def number_of_vowels(word):
    return word.lower().count('a')

其中(尽管有名称)仅计算 a/A 字符,而不是所有元音。等价的 lambda 是:

lambda word: word.lower().count('a')

如果您想让它计算所有元音,仍然可以使用 sum 函数和生成器表达式:

lambda word: sum(1 for let in word.lower() if let in 'aeiouy')

关于python - 将Python中定义的函数更改为lambda函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54584797/

相关文章:

python - 使用 dnspython 查询反向 dns 查找

python - 如何在 Eclipse-PyDev 中更改控制台字体大小

python-3.x - Kivy 无限循环 ScrollView

python-3.x - 使用请求和调试器时出现系统错误 : error return without exception set,

python - Flask 重定向数据

python - 使用 For 循环参数在 Pandas Dataframe 上应用 Zip 函数

python - NumPy:第三维非零的索引(图像掩蔽)

python - 在包含元组的列表列表中查找重复项

带有正则表达式的 Python 3.7 : Why can I no longer substitute with a string containing a backslash (\)?

python - 如何不计算单词之间的标点符号