2017-11-01 3 views
1

Python 3.6 ich eine einfache Liste von Objekten:group_by kehrt Nachschlüssel

for obj in obj_ts: 
    print(obj['address']) 

Das zeigt mir:

mwpJCSEEkphA1utQGA2Y9Vx8cufv85CgpR 
mwpJCSEEkphA1utQGA2Y9Vx8cufv85CgpR 
mwpJCSEEkphA1utQGA2Y9Vx8cufv85CgpR 
mwpJCSEEkphA1utQGA2Y9Vx8cufv85CgpR 
mwpJCSEEkphA1utQGA2Y9Vx8cufv85CgpR 
mwpJCSEEkphA1utQGA2Y9Vx8cufv85CgpR 
mwpJCSEEkphA1utQGA2Y9Vx8cufv85CgpR 
mhRhCZBUP1BsrL6xuXSeAeCNnXcoBHWKAB 
mwpJCSEEkphA1utQGA2Y9Vx8cufv85CgpR 
mwpJCSEEkphA1utQGA2Y9Vx8cufv85CgpR 
mwpJCSEEkphA1utQGA2Y9Vx8cufv85CgpR 
mwpJCSEEkphA1utQGA2Y9Vx8cufv85CgpR 

Dann möchte ich zu einer Gruppe von dieser Objekte:

for address, t_list in itertools.groupby(obj_ts, key=lambda obj: obj['address']): 
    print(address) 

Aber ich bekomme 3 Gruppen statt 2.

mwpJCSEEkphA1utQGA2Y9Vx8cufv85CgpR 
mhRhCZBUP1BsrL6xuXSeAeCNnXcoBHWKAB 
mwpJCSEEkphA1utQGA2Y9Vx8cufv85CgpR 
+2

Wie im ersten Absatz erwähnt [die 'groupby' docs] (https://docs.python.org/3/library/itertools.html#itertools.groupby), müssen Sie die Daten sortieren (mit der gleichen Tastenfunktion), bevor Sie es an 'groupby' übergeben –

+0

oh, ja, Sie haben Recht – Arti

Antwort