r"""
    Args:
        list_ (list): assumed to have unique items

    Returns:
        dict: mapping from item to index

    CommandLine:
        python -m utool.util_list --exec-make_index_lookup

    Example:
        >>> # ENABLE_DOCTEST
        >>> from utool.util_list import *  # NOQA
        >>> import utool as ut
        >>> list_ = [5, 3, 8, 2]
        >>> idx2_item = ut.make_index_lookup(list_)
        >>> result = ut.repr2(idx2_item, nl=False)
        >>> assert ut.dict_take(idx2_item, list_) == list(range(len(list_)))
        >>> print(result)
        {2: 3, 3: 1, 5: 0, 8: 2}

def make_index_lookup(list_, dict_factory=dict):
    r"""
    Args:
        list_ (list): assumed to have unique items

    Returns:
        dict: mapping from item to index

    CommandLine:
        python -m utool.util_list --exec-make_index_lookup

    Example:
        >>> # ENABLE_DOCTEST
        >>> from utool.util_list import *  # NOQA
        >>> import utool as ut
        >>> list_ = [5, 3, 8, 2]
        >>> idx2_item = ut.make_index_lookup(list_)
        >>> result = ut.repr2(idx2_item, nl=False)
        >>> assert ut.dict_take(idx2_item, list_) == list(range(len(list_)))
        >>> print(result)
        {2: 3, 3: 1, 5: 0, 8: 2}
    """
    return dict_factory(zip(list_, range(len(list_))))