[{'group': 'style', 'name': 'Классика'}, {'group': 'style', 'name': 'Модерн'}, {'group': 'type', 'name': '2-х комнатная квартира'}]
<ul class="style-group">
<li>Классика</li>
<li>Модерн</li>
</ul>
<ul class="type-group">
<li>2-х комнатная квартира</li>
</ul>
from itertools import groupby
from operator import itemgetter
data = [
{'group': 'style', 'name': 'Классика'},
{'group': 'style', 'name': 'Модерн'},
{'group': 'type', 'name': '2-х комнатная квартира'}
]
ig = itemgetter('group')
result = [list(group) for key, group in groupby(sorted(data, key=ig), ig)]
from collections import defaultdict
data = [
{'group': 'style', 'name': 'Классика'},
{'group': 'style', 'name': 'Модерн'},
{'group': 'type', 'name': '2-х комнатная квартира'}
]
result = defaultdict(list)
for item in data:
result[item['group']].append(item)
result = list(result.values())
from itertools import groupby
test_list = [{'group': 'style', 'name': 'Классика'}, {'group': 'style', 'name': 'Модерн'}, {'group': 'type', 'name': '2-х комнатная квартира'}, {'group': 'style', 'name': 'Модерн'}]
keyfunc = lambda x:x['group']
res = [list(data) for _, data in groupby(sorted(test_list, key=keyfunc), key=keyfunc)]