Я пытаюсь сгруппировать данные по второму аргументу.группировка списка кортежей с itertools
test= [(1,1),(3,1),(5,0),(3,0),(2,1)]
Я excuting код из этого thread
from itertools import groupby
from operator import itemgetter
result = [list(group) for key, group in groupby(test, itemgetter(1))]
Но вместо того, чтобы получить результат, который выглядит следующим образом: [[(1,1), (3,1), (2,1)], [(5,0), (3,0)]]
Почему я получаю последний кортеж в отделено списке, в то время как я должен получить его группировать с другими значениями, где является вторым значения
[[(1,1), (3,1)], [(5,0), (3,0)], [(2,1)]]
Потому что 'groupby' группирует только смежные элементы. Он не эквивалентен группе SQL. –
Связано: [Как сгруппировать список кортежей/объектов с помощью аналогичного индекса/атрибута в python?] (Http://stackoverflow.com/questions/6602172/how-to-group-a-list-of-tuples-objects -by-like-index-attribute-in-python) –