docs: def dict_stack(dict_list, key_prefix=''):
      r"""
      stacks values from two dicts into a new dict where the values are list of
      the input values. the keys are the same.
  
      DEPRICATE in favor of dict_stack2
  
      Args:
          dict_list (list): list of dicts with similar keys
  
      Returns:
          dict dict_stacked
  
      CommandLine:
          python -m utool.util_dict --test-dict_stack
          python -m utool.util_dict --test-dict_stack:1
  
      Example:
          >>> # ENABLE_DOCTEST
          >>> from utool.util_dict import *  # NOQA
          >>> import utool as ut
          >>> dict1_ = {'a': 1, 'b': 2}
          >>> dict2_ = {'a': 2, 'b': 3, 'c': 4}
          >>> dict_stacked = dict_stack([dict1_, dict2_])
          >>> result = ut.repr2(dict_stacked, sorted_=True)
          >>> print(result)
          {'a': [1, 2], 'b': [2, 3], 'c': [4]}
  
      Example1:
          >>> # ENABLE_DOCTEST
          >>> from utool.util_dict import *  # NOQA
          >>> import utool as ut
          >>> # Get equivalent behavior with dict_stack2?
          >>> # Almost, as long as None is not part of the list
          >>> dict1_ = {'a': 1, 'b': 2}
          >>> dict2_ = {'a': 2, 'b': 3, 'c': 4}
          >>> dict_stacked_ = dict_stack2([dict1_, dict2_])
          >>> dict_stacked = {key: ut.filter_Nones(val) for key, val in dict_stacked_.items()}
          >>> result = ut.repr2(dict_stacked, sorted_=True)
          >>> print(result)
          {'a': [1, 2], 'b': [2, 3], 'c': [4]}
      """
      dict_stacked_ = defaultdict(list)
      for dict_ in dict_list:
          for key, val in six.iteritems(dict_):
              dict_stacked_[key_prefix + key].append(val)
      dict_stacked = dict(dict_stacked_)
      return dict_stacked