PYTHON
Efficiently Grouping Items by Key Using defaultdict
Learn how to group a list of dictionaries or objects by a common key using Python's collections.defaultdict for clean and efficient data organization.
from collections import defaultdict
data = [
{"category": "fruits", "item": "apple"},
{"category": "vegetables", "item": "carrot"},
{"category": "fruits", "item": "banana"},
{"category": "dairy", "item": "milk"},
{"category": "vegetables", "item": "broccoli"},
]
grouped_data = defaultdict(list)
for item in data:
grouped_data[item["category"]].append(item["item"])
print(dict(grouped_data))
# Expected output: {'fruits': ['apple', 'banana'], 'vegetables': ['carrot', 'broccoli'], 'dairy': ['milk']}
How it works: This snippet demonstrates `collections.defaultdict` to group items. When a key is accessed for the first time, `defaultdict(list)` automatically initializes an empty list, allowing direct appending without explicit key checking, making the grouping logic concise and efficient.