Группа Itertools по функциональности - PullRequest
0 голосов
/ 07 апреля 2010

Я хочу сгруппировать по ключу dict

>>> x
[{'a': 10, 'b': 90}, {'a': 20}, {'a': 30}, {'a': 10}]
>>> [(name, list(group)) for name, group in groupby(x, lambda p:p['a'])]
[(10, [{'a': 10, 'b': 90}]), (20, [{'a': 20}]), (30, [{'a': 30}]), (10, [{'a': 10}])]

Это должно сгруппироваться по ключу 10: (

1 Ответ

4 голосов
/ 07 апреля 2010

документы говорят :

itertools.groupby:
Он генерирует разрыв или новую группу каждый раз, когда изменяется значение ключевой функции (поэтомуобычно необходимо для сортировки данных с использованием той же ключевой функции ).Это поведение отличается от GROUP BY SQL, который объединяет общие элементы независимо от их порядка ввода.

...