code: def delete_items_by_index(list_, index_list, copy=False):
      
      if copy:
          list_ = list_[:]
      # Rectify negative indicies
      index_list_ = [(len(list_) + x if x < 0 else x) for x in index_list]
      # Remove largest indicies first
      index_list_ = sorted(index_list_, reverse=True)
      for index in index_list_:
          del list_[index]
      return list_
docs: Remove items from ``list_`` at positions specified in ``index_list``
      The original ``list_`` is preserved if ``copy`` is True
  
      Args:
          list_ (list):
          index_list (list):
          copy (bool): preserves original list if True
  
      Example:
          >>> # ENABLE_DOCTEST
          >>> from utool.util_list import *  # NOQA
          >>> list_ = [8, 1, 8, 1, 6, 6, 3, 4, 4, 5, 6]
          >>> index_list = [2, -1]
          >>> result = delete_items_by_index(list_, index_list)
          >>> print(result)
          [8, 1, 1, 6, 6, 3, 4, 4, 5]