import itertools


def split(predicate, items):
    """ Route items from an iterable into two new iterable, one where the predicate is true. """
    true, false = itertools.tee(items, 2)
    return filter(predicate, true), itertools.filterfalse(predicate, false)