Seite 1 von 1

Listenwerte addieren

Verfasst: Montag 26. November 2018, 11:33
von Ede1994
Hallo,

folgendes Problem: Ich habe eine Liste mit sehr vielen float Zahlen und möchte nun eine neue Liste erstellen, in der immer 3 aufeinander folgende Zahlen aus der alten Liste addiert werden.
Bsp:

Code: Alles auswählen

[1,2,3,4,5,6,7,8,9] => [6,15,24]
 1+2+3 => 6
 4+5+6 => 15
 7+8+9 => 24
Daran scheitere ich bis jetzt! Eine darauf aufbauende Frage: Was passiert wenn die Ursprungs-Liste gerade so viele Elemente enthält, dass zum Schluss eine Zahl übrig bleibt?

DANKE für Eure Hilfe!

Re: Listenwerte addieren

Verfasst: Montag 26. November 2018, 11:41
von __deets__
Ein Weg ist zip, mit Schrittweite 3.

ergebnis = [a+b+c for a, b, c in zip(liste[::3, liste[1::3], liste[2::3])]

Bezueglich deiner Frage: probier's aus.

Re: Listenwerte addieren

Verfasst: Montag 26. November 2018, 11:49
von Ede1994
Okay!? Hat funktioniert. DANKE!
Der zip-Befehl war mir nicht bekannt!

Re: Listenwerte addieren

Verfasst: Mittwoch 28. November 2018, 11:37
von Ede1994
Nochmal eine Frage:
Wie kann ich das jetzt für 20 Werte machen?
Nach diesem Schema:
__deets__ hat geschrieben: Montag 26. November 2018, 11:41 Ein Weg ist zip, mit Schrittweite 3.

ergebnis = [a+b+c for a, b, c in zip(liste[::3, liste[1::3], liste[2::3])]

Bezueglich deiner Frage: probier's aus.
würde ich mir ja einen Wolf schreiben :roll:

Mein wahrscheinlich total uneleganter Lösungsansatz:

Code: Alles auswählen

liste_counts2 = [liste_counts[i:i+20] for i in xrange(0, len(liste_counts),20)]
liste_counts3 = [sum(liste_counts2[i]) for i in range(len(liste_counts2))]

Re: Listenwerte addieren

Verfasst: Mittwoch 28. November 2018, 11:43
von Sirius3
Ich habe da einen Beitrag gefunden, der von jemandem mit ähnlichem Namen stammt: viewtopic.php?f=30&t=44319#p336016
Das sollte Dir weiterhelfen.