input: Write a function to take a dictionary as an argument and return an inverted dictionary where the keys are the original dictionary's values and the values are lists of the original dictionary's keys that mapped to those values. If the given dictionary is empty, return an empty dictionary.
  
  def invert_dictionary(d):
   inverted_d = {} 
   for key, value in d.items(): 
    if value not in inverted_d: 
     inverted_d[value] = [] 
    inverted_d[value].append(key) 
   return inverted_d 
  
  assert invert_dictionary({'a': 1, 'b': 2, 'c': 1})=={1: ['a', 'c'], 2: ['b']}
  assert invert_dictionary({'a': 'apple', 'b': 'banana', 'c': 'apple'})=={'apple': ['a', 'c'], 'banana': ['b']}
  assert invert_dictionary({'x': 5, 'y': 10, 'z': 10})=={5: ['x'], 10: ['y', 'z']}
  assert invert_dictionary({})=={}
output: def invert_dictionary(d):
      inverted_d = {}
      for key, value in d.items():
          if value not in inverted_d:
              inverted_d[value] = []
          inverted_d[value].append(key)
      return inverted_d