def group_by_key(items, key_func): grouped_data = {} for item in items: key = key_func(item) if key not in grouped_data: grouped_data[key] = [] grouped_data[key].append(item) return grouped_data # Example Usage (grouping people by their age): # people = [ # {'name': 'Alice', 'age': 30}, # {'name': 'Bob', 'age': 25}, # {'name': 'Charlie', 'age': 30}, # {'name': 'David', 'age': 25} # ] # grouped_by_age = group_by_key(people, lambda p: p['age']) # print(grouped_by_age) # # Expected: {30: [{'name': 'Alice', 'age': 30}, {'name': 'Charlie', 'age': 30}], 25: [{'name': 'Bob', 'age': 25}, {'name': 'David', 'age': 25}]}