🐍 Group List of Dict By Key

May 06, 2022 00:00 • Category: Code Bytes

from collections import defaultdict

def group_by_key(records, key):
    grouped = defaultdict(list)
    for record in records:
        grouped[record[key]].append(record)
    return grouped

records = [{"name": "Alice", "age": 25, "city": "New York"},
           {"name": "Bob", "age": 30, "city": "London"},
           {"name": "Charlie", "age": 25, "city": "New York"}]
grouped_by_city = group_by_key(records, "city")
print(grouped_by_city)

Result

defaultdict(<class 'list'>,
            {'London': [{'age': 30, 'city': 'London', 'name': 'Bob'}],
             'New York': [{'age': 25, 'city': 'New York', 'name': 'Alice'},
                          {'age': 25, 'city': 'New York', 'name': 'Charlie'}]})