Python filterfalse()和filter()过滤方法,前面用到了filter()
函数,可以基于它定义itertools
模块中的filterfalse()
函数,如下所示:
基于filter()
函数定义意味着谓词函数可以是None
。函数filter(None, iterable)
返回可迭代对象中的所有真值,函数filterfalse(None, iterable)
则返回所有非真值。
使用filterfalse()
函数意在提高代码复用性。使用这个简洁的函数,可以方便地将输入数据分为“通过”和“舍弃”两组,而无须使用逻辑非这种繁复的表达方式。
该思想体现如下:
显然,这会包含输入数据中所有的值。test()
函数无须变动,从而避免了误用括号造成难以察觉的逻辑错误。