Jeden einzelnen Eintrag einer Liste miteinander addieren

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
Sylenth
User
Beiträge: 2
Registriert: Montag 1. März 2021, 10:02

Hallo zusammen,

ich habe eine Liste mit folgenden Einträgen:

Code: Alles auswählen

Werte = (47, 99, 130, 290, 350, 480, 502, 630)
Nun stehe ich vor folgendem Problem:
Ich möchte jeden einzelnen Wert dieser Liste miteinander addieren. Also 47 + 130, 502 + 350 usw.
Jede Zahl soll quasi einmal mit einer anderen aus der Liste addiert werden.

Könnt ihr mir da weiterhelfen?
Zusätzlich wäre es ggf. noch interessant, dass sich ein Wert, z.b. 130 einmal mit sich selbst addiert. Also 130 + 130.

Viele Grüße
Benutzeravatar
__blackjack__
User
Beiträge: 14054
Registriert: Samstag 2. Juni 2018, 10:21
Wohnort: 127.0.0.1
Kontaktdaten:

@Sylenth: So ganz schlau werde ich aus der Beschreibung nicht. Die beiden Beispiele scheinen so willkürlich gewählt zu sein. So ganz allgemein vermute ich das Dir ein Blick in das `itertools`-Modul in der Standardbibliothek weiterhelfen könnte.
“Vir, intelligence has nothing to do with politics!” — Londo Mollari
Sylenth
User
Beiträge: 2
Registriert: Montag 1. März 2021, 10:02

@__blackjack__: Danke für deine Antwort. Tatsächlich waren die Beispiele willkürlich gewählt. Du hast mir mit dem Tipp, "itertools" zu nutzen schon weitergeholfen. Ich lese mir gerade die Dokumentation durch und denke dass ich bald fündig werde. Ich habe dieses Modul noch nie genutzt.

Vielen Dank fürs weiterhelfen
Benutzeravatar
DeaD_EyE
User
Beiträge: 1240
Registriert: Sonntag 19. September 2010, 13:45
Wohnort: Hagen
Kontaktdaten:

Ich glaube, du brauchst itertools.combinations und itertools.combinations_with_replacement.

Mit deinem Beispiel:

Code: Alles auswählen

import itertools


data = (47, 99, 130, 290, 350, 480, 502, 630)

combinations_1 = list(itertools.combinations(data, r=2))
combinations_1_sum = [sum(combo) for combo in itertools.combinations(data, r=2)]

combinations_2 = list(itertools.combinations_with_replacement(data, r=2))
combinations_2_sum = [sum(combo) for combo in itertools.combinations_with_replacement(data, r=2)]
sourceserver.info - sourceserver.info/wiki/ - ausgestorbener Support für HL2-Server
Antworten