itertools.groupby () неправильно группируется

У меня есть эти данные:

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

Когда я запускаю этот код:

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

для список (группа) , я получаю:

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

, что мне и нужно.

Но если я использую 1 вместо 0

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

для группировки по второму числу в кортежах, я получаю только:

[(1, 1, 5.0)]

, даже если есть другие кортежи, у которых «1» находится в этой 1 (второй) позиции.

11
задан Aran-Fey 6 May 2018 в 11:03
поделиться