Listenwerte addieren

mit matplotlib, NumPy, pandas, SciPy, SymPy und weiteren mathematischen Programmbibliotheken.
Antworten
Benutzeravatar
Ede1994
User
Beiträge: 72
Registriert: Dienstag 2. Mai 2017, 12:41

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!
__deets__
User
Beiträge: 14494
Registriert: Mittwoch 14. Oktober 2015, 14:29

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.
Benutzeravatar
Ede1994
User
Beiträge: 72
Registriert: Dienstag 2. Mai 2017, 12:41

Okay!? Hat funktioniert. DANKE!
Der zip-Befehl war mir nicht bekannt!
Benutzeravatar
Ede1994
User
Beiträge: 72
Registriert: Dienstag 2. Mai 2017, 12:41

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))]
Sirius3
User
Beiträge: 17712
Registriert: Sonntag 21. Oktober 2012, 17:20

Ich habe da einen Beitrag gefunden, der von jemandem mit ähnlichem Namen stammt: viewtopic.php?f=30&t=44319#p336016
Das sollte Dir weiterhelfen.
Antworten