假设您有一些列表 L
,并且您希望根据一些 bool 函数 P
将它分成两个列表。也就是说,您需要一个包含所有元素 l
的列表,其中 P(l)
为 true,另一个列表中 P(l)
为 false .
我可以像这样在 Python 中实现它:
def multifilter(pred,seq):
trues,falses = [],[]
for x in seq:
if pred(x):
trues.append(x)
else:
falses.append(x)
return trues,falses
我的问题:是否有函数式编程惯用语可以完成此任务?
最佳答案
来自 itertools 示例:
from itertools import tee, filterfalse
def partition(pred, iterable):
t1, t2 = tee(iterable)
return filterfalse(pred, t1), filter(pred, t2)
关于python - 是否有用于将列表过滤为真和假的函数式编程习惯用法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3697556/