2024-04-24 19:51:33 发布
网友
我在写一些lambda函数,但没能搞清楚。有没有办法在python中有类似lambda x: x if (x<3)的东西?因为lambda a,b: a if (a > b) else b工作正常。到目前为止lambda x: x < 3 and x or None似乎是我发现的最接近的。
lambda x: x if (x<3)
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,因此您可以
x<3
None
lambda x: x if (x<3) else None
但也许你要找的是一个有if条件的列表理解。例如:
if
In [21]: data = [1, 2, 5, 10, -1] In [22]: [x for x in data if x < 3] Out[22]: [1, 2, -1]
很抱歉救活了一个僵尸。
我在寻找同一个问题的答案,我发现“filter”正是我想要的:
>>> data = [1, 2, 5, 10, -1] >>> filter(lambda x: x < 3, data) [1, 2, -1]
在2.x和3.x中的实现是相同的: https://docs.python.org/2/library/functions.html#filterhttps://docs.python.org/3/library/functions.html#filter
lambda x: x if x < 3 else None怎么了?
lambda x: x if x < 3 else None
lambda和任何函数一样,必须有一个返回值。
lambda x: x if (x<3)
不起作用,因为它没有指定如果不起作用,返回什么x<3
。默认情况下,函数返回None
,因此您可以但也许你要找的是一个有
if
条件的列表理解。例如:很抱歉救活了一个僵尸。
我在寻找同一个问题的答案,我发现“filter”正是我想要的:
在2.x和3.x中的实现是相同的: https://docs.python.org/2/library/functions.html#filterhttps://docs.python.org/3/library/functions.html#filter
lambda x: x if x < 3 else None
怎么了?相关问题 更多 >
编程相关推荐