您可以在 lambda 函数中添加条件吗?

Posted

技术标签:

【中文标题】您可以在 lambda 函数中添加条件吗?【英文标题】:Can you add a condition into a lambda function? 【发布时间】:2020-08-20 14:29:58 【问题描述】:

我有以下代码:

clean_tweets['tweet'] = clean_tweets['tweet'].apply(lambda x: remove_noise(x))

我想添加逻辑添加仅当推文为字符串时才执行 remove_noise 的条件

是否有可能实现这一点,有没有其他方法可以做到这一点?

【问题讨论】:

【参考方案1】:

可以,可以在Python中使用所谓的三元表达式,比如:

(result_if_clause_is_true) if (clause) else (result_if_clause_is_false)

在您的具体情况下:

lambda x: remove_noise(x) if isinstance(x, str) else x

然而,任何比 if/else 操作更复杂的东西都应该成为它自己的函数。

请注意,此表达式可以在许多其他地方使用,而不仅仅是在 lambdas 中:

x = y**2 if y < 10 else y/2  # assignment

【讨论】:

【参考方案2】:

lambda x: remove_noise(x) 就是remove_noise

您可能应该将逻辑添加到remove_noise 函数中:

def remove_noise(x):
    if not isinstance(x, str):
        return x # or None or whatever other value
    # handle the case where x is a string

整体而言:

def remove_noise(x):
    if not isinstance(x, str):
        return x # or None or whatever othe value
    # handle the case where x is a string

clean_tweets['tweet'] = clean_tweets['tweet'].apply(remove_noise)

【讨论】:

以上是关于您可以在 lambda 函数中添加条件吗?的主要内容,如果未能解决你的问题,请参考以下文章

在 C++ 中添加两个 lambda 函数

我可以在 app.config 文件中添加条件吗?

Lambda 异步调用

如何在 C++ 中定义匿名函数?

Python函数可选参数-可以添加为条件吗?

我可以在linux中获取msi文件的源代码并添加一些条件吗?