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
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.