itertools.groupby() ne regroupez pas correctement

J'ai ces données:

self.data = [(1, 1, 5.0),
             (1, 2, 3.0),
             (1, 3, 4.0),
             (2, 1, 4.0),
             (2, 2, 2.0)]

Lorsque j'exécute ce code:

for mid, group in itertools.groupby(self.data, key=operator.itemgetter(0)):

pour list(group) j'obtiens:

[(1, 1, 5.0),
 (1, 2, 3.0),
 (1, 3, 4.0)]

qui est ce que je veux.

Mais si j'utilise 1 au lieu de 0

for mid, group in itertools.groupby(self.data, key=operator.itemgetter(1)):

de groupe par le second nombre de tuples, je ne reçois:

[(1, 1, 5.0)]

même si il y a d'autres tuples qui ont "1" 1 (2e) position.

InformationsquelleAutor user994165 | 2011-11-14