Ich habe eine Liste von 4 Elementen und es sieht aus wie:Python2 Liste der Listen von Wert fusionieren
L = [['grape','green',2, 100], ['grape','purple',3,3], ['apple','red',2, 15], ['apple','greed',3, 10],
['apple','red',4, 4], ['banana','yellow',2, 3]]
I diese Liste durch das erste Element, um eine Funktion haben, möchte zu fusionieren, verketten die zweite und die dritte Element, dann das letzte Element zusammenzufassen, wie die Ausgabe zu erhalten:
[['grape',['green,purple'],[2,3],103],['banana','yellow',2, 3],['apple',['red','green','red'],[2,3,4],29]
ich die Folge Code versucht:
[(x,sum(map(itemgetter(3),y))) for x,y in itertools.groupby(L, itemgetter(0))], which can successfully sum up the last element, but
[(x,(map(itemgetter(1),y)),(map(itemgetter(2),y)),sum(map(itemgetter(3),y))) for x,y in itertools.groupby(L, itemgetter(0))]
hat nicht so funktioniert, wie ich es erwartet hatte.
Gibt es eine Möglichkeit, dies zu tun?
Wenn es in der Gruppe nur ein Element ist sollte das zweite und dritte Element im Ergebnis sein Listen? – niemmi
Entweder list oder unlist (Elemente) wird in Ordnung sein –