在python中是否有任何内置的lambda for notNone

时间:2018-04-24 20:04:13

标签: python oop typing

我在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)

1 个答案:

答案 0 :(得分:2)

您可以使用None.__ne__,即对None

的不等检查
>>> lst = [0, [], None, ""]

>>> list(filter(None.__ne__, lst))
[0, [], '']

从技术上讲,这不会测试x is not None而是x != None可能会在某些情况下产生不同的结果,例如对于比较等于None的类,但对于大多数实际情况,它应该可以工作。