Иногда при работе с коллекциями в пайтон нужно быстро сгруппировать данные по ключу и при этом не писать громоздкий цикл с проверками. В таких случаях можно использовать модуль итэртулз и функцию группбай. Она позволяет превратить список в словарь с удобной структурой, где каждый ключ сразу содержит все связанные элементы. Это сильно экономит строки кода и делает его чище.
from itertools import groupby
from operator import itemgetter
data = [
{"category": "A", "value": 10},
{"category": "B", "value": 20},
{"category": "A", "value": 30},
{"category": "B", "value": 40},
]
сортировка обязательна перед groupby
data.sort(key=itemgetter("category"))
grouped = {
key: list(group) for key, group in groupby(data, key=itemgetter("category"))
}
print(grouped)