def invert_dictionary(input_dict): inverted_dict = {} for key, value in input_dict.items(): # If values are not unique, store multiple original keys in a list if value not in inverted_dict: inverted_dict[value] = [] inverted_dict[value].append(key) return inverted_dict # Example Usage: # original_dict = {'a': 1, 'b': 2, 'c': 1, 'd': 3} # inverted = invert_dictionary(original_dict) # print(inverted) # {1: ['a', 'c'], 2: ['b'], 3: ['d']}