docs: def list_inverse_take(list_, index_list):
      r"""
      Args:
          list_ (list): list in sorted domain
          index_list (list): index list of the unsorted domain
  
      Note:
          Seems to be logically equivalent to
          ut.take(list_, ut.argsort(index_list)), but faster
  
      Returns:
          list: output_list_ - the input list in the unsorted domain
  
      CommandLine:
          python -m utool.util_list --test-list_inverse_take
  
      Example:
          >>> # ENABLE_DOCTEST
          >>> from utool.util_list import *  # NOQA
          >>> import utool as ut
          >>> # build test data
          >>> rank_list = [3, 2, 4, 1, 9, 2]
          >>> prop_list = [0, 1, 2, 3, 4, 5]
          >>> index_list = ut.argsort(rank_list)
          >>> sorted_prop_list = ut.take(prop_list, index_list)
          >>> # execute function
          >>> list_ = sorted_prop_list
          >>> output_list_  = list_inverse_take(list_, index_list)
          >>> output_list2_ = ut.take(list_, ut.argsort(index_list))
          >>> assert output_list_ == prop_list
          >>> assert output_list2_ == prop_list
          >>> # verify results
          >>> result = str(output_list_)
          >>> print(result)
  
      Timeit::
          %timeit list_inverse_take(list_, index_list)
          %timeit ut.take(list_, ut.argsort(index_list))
      """
      output_list_ = [None] * len(index_list)
      for item, index in zip(list_, index_list):
          output_list_[index] = item
      return output_list_