def delta_list_to_deltas_and_indices(delta_list, tolerance=0.001):
    """
    Given a list of vectors, eg. [(0,0,0), (1,0,0), (0,0,0)], return a list of indices
    and vectors, filtering out zero vectors: [1], [(1,0,0)].

    >>> delta_list_to_deltas_and_indices([(1,0,0), (0,0,0.000001), (0,1,0)])
    ([0, 2], [(1, 0, 0), (0, 1, 0)])
    """
    # Make a list of the nonzero indices in the new delta list.
    def is_nonzero(value):
        return any(abs(v) > tolerance for v in value)

    delta_vertex_idx = [idx for idx, delta in enumerate(delta_list) if is_nonzero(delta)]
    deltas = [delta_list[idx] for idx in delta_vertex_idx]
    return delta_vertex_idx, deltas