PYTHON

Grouping Items by a Common Key with defaultdict

Efficiently group a list of dictionaries or objects by a specified key into a dictionary of lists using Python's `collections.defaultdict` for clean, concise code.

from collections import defaultdict

data = [
    {'category': 'fruit', 'item': 'apple'},
    {'category': 'vegetable', 'item': 'carrot'},
    {'category': 'fruit', 'item': 'banana'},
    {'category': 'dairy', 'item': 'milk'},
    {'category': 'vegetable', 'item': 'broccoli'},
]

# Grouping items by 'category'
grouped_by_category = defaultdict(list)
for entry in data:
    grouped_by_category[entry['category']].append(entry['item'])

print(f"Grouped Data: {dict(grouped_by_category)}")

# Example with a function to demonstrate reusability
def group_by_key(items, key_name):
    grouped = defaultdict(list)
    for item in items:
        grouped[item[key_name]].append(item)
    return dict(grouped)

grouped_full_items = group_by_key(data, 'category')
print(f"Grouped Full Items: {grouped_full_items}")
How it works: This snippet demonstrates how to group a list of dictionaries by a common key using `collections.defaultdict`. When a new key is accessed in a `defaultdict(list)`, it automatically creates an empty list for that key, simplifying the logic compared to checking `if key not in dict` manually. This is highly useful for organizing and aggregating structured data.

Need help integrating this into your project?

Our team of expert developers can help you build your custom application from scratch.

Hire DigitalCodeLabs