Seite 1 von 1

Jeden einzelnen Eintrag einer Liste miteinander addieren

Verfasst: Montag 1. März 2021, 10:13
von Sylenth
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

Re: Jeden einzelnen Eintrag einer Liste miteinander addieren

Verfasst: Montag 1. März 2021, 11:19
von __blackjack__
@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.

Re: Jeden einzelnen Eintrag einer Liste miteinander addieren

Verfasst: Montag 1. März 2021, 12:46
von Sylenth
@__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

Re: Jeden einzelnen Eintrag einer Liste miteinander addieren

Verfasst: Montag 1. März 2021, 14:40
von DeaD_EyE
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)]