我正在编写一些 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/