带有 if 但没有 else 的 Python lambda

标签 python lambda inline-if

我正在编写一些 lambda 函数,但无法弄清楚。有没有办法拥有像 lambda x: x if (x<3) 这样的东西在 python ?如lambda a,b: a if (a > b) else b工作正常。到目前为止lambda x: x < 3 and x or None似乎是我找到的最接近的。

最佳答案

与任何函数一样,lambda 必须有一个返回值。

lambda x: x if (x<3)不起作用,因为它没有指定如果不是 x<3 则返回什么.默认情况下,函数返回 None ,所以你可以这样做

lambda x: x if (x<3) else None

但也许您正在寻找的是带有 if 的列表理解。健康)状况。例如:

In [21]: data = [1, 2, 5, 10, -1]

In [22]: [x for x in data if x < 3]
Out[22]: [1, 2, -1]

关于带有 if 但没有 else 的 Python lambda,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12709062/

相关文章:

c# - 使用 Linq lambdas,如何获得双键排序列表中的第一项?

python - 如何在 Python lambda 表达式中表达条件执行?

python - 类型错误 : 'module' object is not callable error with driver=webdriver ("C:\\Python34\\Lib\\site-packages\\selenium\\webdriver\\chromedriver.exe")

python - 加载在线托管的 TensorFlow (.h5) 模型

python - couchDB 、 python 和身份验证

c# - Math.Max vs inline if - 有什么区别?

python - 多线程与多处理 : Which one to select?

python - 如何使用 defaultdict 创建带有 lambda 函数的字典?

Java 错误 - lambda 表达式在 -source 1.5 中不受支持(使用 -source 8 或更高版本来启用 lambda 表达式)