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()'有什麼不好? –