input: Write a function to generate an inverted dictionary from the given dictionary. The function should take a dictionary as an input and return a new dictionary where the keys are the values from the original dictionary and the values are lists of keys from the original dictionary that had the corresponding value. If the input dictionary is empty, the function should 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({'x': 'apple', 'y': 'banana', 'z': 'apple'}) == {'apple': ['x', 'z'], 'banana': ['y']}
  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