1

可能重复:
python 等效于 filter() 获取两个输出列表(即列表的分区)

python标准库中是否有任何内置函数或某些模块,可以模拟 Enumerable.partitionRuby的行为并仅遍历一个对象以根据传递的谓词函数获取两个列表/元组?

4

1 回答 1

1

从这个问题中无耻地窃取- 您可以使用以下tee功能itertools

from itertools import tee

def split_on_condition(seq, condition):
    l1,l2 = tee((condition(item),item) for item in seq)
    return (i for p, i in l1 if p), (i for p, i in l2 if not p)
于 2012-09-12T12:00:39.697 回答