Уведомления

Группа в Telegram: @pythonsu

#1 Март 7, 2014 00:13:27

kodak38
Зарегистрирован: 2014-01-26
Сообщения: 10
Репутация: +  0  -
Профиль   Отправить e-mail  

Работа со словарями

есть список из словарей

{'cn': 1 ‘ce’: 1}
{'cn': 2, ‘ce’: 1}
{'cn': 2, ‘ce’: 2}
{'cn': 3, ‘ce’: 2}
Как составит новый словарь, чтобы это выглядело так к примеру {[ce:1,cn:],['ce':2,'cn':}

Офлайн

#2 Март 7, 2014 00:37:59

dimy44
От: Евпатория
Зарегистрирован: 2012-04-21
Сообщения: 463
Репутация: +  42  -
Профиль  

Работа со словарями

Оформите пост как положено, сейчас пример как должно выглядеть- бессмысленен, хз что Вы хотите получить. И не “например”, а конкретно.

Офлайн

#3 Март 7, 2014 01:06:33

kodak38
Зарегистрирован: 2014-01-26
Сообщения: 10
Репутация: +  0  -
Профиль   Отправить e-mail  

Работа со словарями

Извините выглядело {{ce:1,cn:},{'ce':2,'cn':}}

Офлайн

#4 Март 7, 2014 01:08:35

kodak38
Зарегистрирован: 2014-01-26
Сообщения: 10
Репутация: +  0  -
Профиль   Отправить e-mail  

Работа со словарями

странно квадратные скобки затираются {{ce:1,cn:},{ce:2, cn:}}

Офлайн

#5 Март 7, 2014 01:10:45

kodak38
Зарегистрирован: 2014-01-26
Сообщения: 10
Репутация: +  0  -
Профиль   Отправить e-mail  

Работа со словарями

{{ce:1,cn:[1,2]},{ce:2, cn:[2,3]}}

Офлайн

#6 Март 7, 2014 01:48:04

py.user.next
От:
Зарегистрирован: 2010-04-29
Сообщения: 10010
Репутация: +  857  -
Профиль   Отправить e-mail  

Работа со словарями

>>> 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)

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version