def split_list(list_in, separator_func):
    """Split list into separate lists, using separator function. Does not include separator elements in output list.

    Parameters
    ----------
    list_in: List
        List to separate
    separator_func: func
        function(element), called on each element of list. If it evaluates to True, element is considered a separator

    Returns
    -------
    List[List]

    """
    if not list_in:
        return list_in
    split = []
    collected = []
    for element in list_in:
        if separator_func(element):
            if collected:
                split.append(collected)
                collected = []
        else:
            collected.append(element)
    if collected:
        split.append(collected)
    return split
