devo questi dati: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)]
Quando faccio funzionare questo codice:
for mid, group in itertools.groupby(self.data, key=operator.itemgetter(0)):
per list(group)
ottengo:
list: [(1, 1, 5.0),
(1, 2, 3.0),
(1, 3, 4.0)]
che è quello che voglio .
Ma se io uso 1 invece di 0
for mid, group in itertools.groupby(self.data, key=operator.itemgetter(1)):
al gruppo per il secondo numero di tuple, io ho soltanto:
list: [(1, 1, 5.0)]
anche se ci sono altre tuple che hanno "1 "in quella posizione 1 (2).
Avevo ordinato in precedenza sulla posizione zero. Quindi ho appena ordinato di nuovo prima di fare il groupby e funziona. self.data.sort (key = operator.itemgetter (1)) – user994165