[英]Is there any built in lambda for is notNone in python
我看到以下习语在 python X = filter(lambda x: x is not None, X))
重复了几次
我希望在 python 中有一个内置函数is not None
(在它的标准库或类似于 java 的 apache-commons 中)。
在我的代码中,我将其组织为
def isNotNone(X: Any) -> bool:
return True if X is not None else False
X = filter(isNotNone, X)
你可以使用None.__ne__
,即的不等于检查None
:
>>> lst = [0, [], None, ""]
>>> list(filter(None.__ne__, lst))
[0, [], '']
从技术上讲,这不会测试x is not None
而是x != None
,这在某些情况下可能会产生不同的结果,例如对于比较等于None
,但对于大多数实际情况,它应该可以工作。
正如评论中所指出的,对于所有版本的 Python,它的行为并不相同——或者甚至没有定义——一些正确返回True
或False
而另一些则为大多数值产生NotImplemented
,巧合的是,这也“有效”,但应该不能依赖。 相反,定义您自己的def
或lambda
或(对于此用例)使用列表def
可能是一个更好的主意。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.