PYTHON

Group Data Gracefully with collections.defaultdict

Use Python's collections.defaultdict to effortlessly group items by a common key without explicit `if key not in dict` checks, streamlining data aggregation from APIs or databases.

from collections import defaultdict

# Sample data: list of dictionaries (e.g., user activities)
activities = [
    {'user_id': 1, 'action': 'login'},
    {'user_id': 2, 'action': 'view_product'},
    {'user_id': 1, 'action': 'add_to_cart'},
    {'user_id': 3, 'action': 'login'},
    {'user_id': 2, 'action': 'purchase'}
]

# Group activities by user_id
grouped_activities = defaultdict(list)
for activity in activities:
    grouped_activities[activity['user_id']].append(activity['action'])

print(f"Grouped activities: {dict(grouped_activities)}")
# Output: {1: ['login', 'add_to_cart'], 2: ['view_product', 'purchase'], 3: ['login']}

# Example with default value for missing key
print(f"Activities for user 4 (non-existent): {grouped_activities[4]}")
How it works: `collections.defaultdict` is a dictionary subclass that calls a factory function to supply missing values when a key is accessed for the first time. This eliminates boilerplate code for checking if a key exists before appending to a list or summing a value. It's particularly useful for grouping data, like log entries or API responses, where you want to collect associated items under a common key.

Need help integrating this into your project?

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

Hire DigitalCodeLabs