Partitions an iterable with a predicate into two lists, one with elements satisfying
    the predicate and one with elements that do not satisfy it.

    .. note: this just converts the results of partition_iter to a list for you so that you don't
    have to in most cases using `partition_iter` is a better option.

    :returns: a tuple (satisfiers, unsatisfiers).

def partition_list(pred, iterable):
    """Partitions an iterable with a predicate into two lists, one with elements satisfying
    the predicate and one with elements that do not satisfy it.

    .. note: this just converts the results of partition_iter to a list for you so that you don't
    have to in most cases using `partition_iter` is a better option.

    :returns: a tuple (satisfiers, unsatisfiers).
    """
    left, right = partition_iter(pred, iterable)
    return list(left), list(right)