que tienen estos datos:itertools.groupby()
self.data = list: [(1, 1, 5.0),
(1, 2, 3.0),
(1, 3, 4.0),
(2, 1, 4.0),
(2, 2, 2.0),
(2, 3, 4.0),
(2, 5, 3.0),
(3, 2, 2.0),
(3, 4, 4.0),
(3, 5, 3.0)]
Cuando ejecuto este código:
for mid, group in itertools.groupby(self.data, key=operator.itemgetter(0)):
para list(group)
me sale:
list: [(1, 1, 5.0),
(1, 2, 3.0),
(1, 3, 4.0)]
que es lo que yo quiero .
Pero si utilizo 1 en lugar de 0
for mid, group in itertools.groupby(self.data, key=operator.itemgetter(1)):
al grupo por el segundo número en las tuplas, solo me dan:
list: [(1, 1, 5.0)]
a pesar de que hay otras tuplas que tienen "1 "en esa 1 (2da) posición.
Había ordenado anteriormente en la posición cero. Así que solo ordené de nuevo antes de hacer groupby y funciona. self.data.sort (key = operator.itemgetter (1)) – user994165