Форум сайта python.su
0
есть список из словарей
{'cn': 1 ‘ce’: 1}
{'cn': 2, ‘ce’: 1}
{'cn': 2, ‘ce’: 2}
{'cn': 3, ‘ce’: 2}
Как составит новый словарь, чтобы это выглядело так к примеру {[ce:1,cn:],['ce':2,'cn':}
Офлайн
Оформите пост как положено, сейчас пример как должно выглядеть- бессмысленен, хз что Вы хотите получить. И не “например”, а конкретно.
Офлайн
0
Извините выглядело {{ce:1,cn:},{'ce':2,'cn':}}
Офлайн
0
странно квадратные скобки затираются {{ce:1,cn:},{ce:2, cn:}}
Офлайн
0
{{ce:1,cn:[1,2]},{ce:2, cn:[2,3]}}
Офлайн
857
>>> import itertools >>> >>> lst = [{'cn': 1, 'ce': 1}, ... {'cn': 2, 'ce': 1}, ... {'cn': 2, 'ce': 2}, ... {'cn': 3, 'ce': 2}] >>> >>> out = [] >>> >>> grp = itertools.groupby(lst, lambda i: i['ce']) >>> for i, it in grp: ... num_lst = sorted(d['cn'] for d in it) ... out.append({'ce': i, 'cn': num_lst}) ... >>> print(out) [{'ce': 1, 'cn': [1, 2]}, {'ce': 2, 'cn': [2, 3]}] >>>
Отредактировано py.user.next (Март 7, 2014 01:48:31)
Офлайн