lst = [OrderedDict([('type', t), (kind, [list(d.items())[1][1] for d in lst if d[
    'type'] == t])]) for t, kind in set((d['type'], list(d.items())[1][0]) for d in
    lst)]
Объединение нескольких словарей на основе общего значения ключа в один словарь