def partition(alist, indices):
    """A function to split a list based on item indices 
    
    Parameters:
    -----------------------------
        : alist (list): a list to be split
        : indices (list): list of indices on which to divide the input list
        
    Returns:
    -----------------------------
        : splits (list): a list of subreads based on cut sites
    """
    return [alist[i:j] for i, j in zip([0]+indices, indices+[None])]