python是否有一个内置的语句或函数否定另一个函数?更具体地说:一个函数需要另一个函数fun
(它返回布尔值)并返回一个函数,该函数是fun
的否定副本。否定一个函数(功能)
其简单的创造:
def neg(fun):
def negfun(x):
return not fun(x)
return negfun
用法示例:
In [1]: fun = lambda x: x < 3
In [2]: filter(fun, range(8))
Out[2]: [0, 1, 2]
In [3]: filter(neg(fun), range(8))
Out[3]: [3, 4, 5, 6, 7]
也许这是一个坏榜样,试想过滤功能已经存在别的地方,你想用它。
我只是感到惊讶,我找不到更简单的方法...有一个吗?
据我所知,不过你可以改进上面的代码。 –
您可以使用'itertools.filterfalse'来否定'filter'结果。 – vaultah
'不好(()'而不是'negfun()'有什么不好? –