Ich hätte da mal eine Frage:

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
ossi047
User
Beiträge: 46
Registriert: Donnerstag 19. Dezember 2019, 15:57

Hallo Ihr Wissenden,

ich habe da das letzte Mal ein Lösung von euch bekommen für eine Summenbildung nach den Dim.

menge = [3.25, "DN20", 0.78, "DN20", 1.0, "DN25", 5.5, "DN40"]
result = sum(v for v, k in zip(*[iter(menge)] * 2) if k == "DN20")

Das funktioniert auch bestens. Wie das funktioniert bin ich leider noch nicht drauf gekommen.
Leider musste ich im Programm etwas ändern.
Jetzt sieht meine Liste aber so aus:
menge = ["3.25", "DN20", "0.78", "DN20", "1.0", "DN25", "5.5", "DN40"]

Jetzt funktioniert dann die Lösung wie oben nicht mehr.
Könntet Ihr mir das bitte auf die neue Situation ändern.
Danke im Voraus.
Sirius3
User
Beiträge: 18274
Registriert: Sonntag 21. Oktober 2012, 17:20

Was hat sich denn genau geändert? Und was passiert genau?
Und woher kommt die Liste? Wie sieht der Input wirklich aus?
Benutzeravatar
__blackjack__
User
Beiträge: 14053
Registriert: Samstag 2. Juni 2018, 10:21
Wohnort: 127.0.0.1
Kontaktdaten:

@ossi047: Die Frage ist jetzt aber eher trivial zu beantworten wenn man sich anschaut was sich an den Daten geändert hat. Man kann Zeichenketten halt nicht addieren, beziehungsweise nicht mit einem vergleichbaren, in diesem Fall sinnvollen Ergebnis.

Code: Alles auswählen

In [222]: menge                                                                 
Out[222]: ['3.25', 'DN20', '0.78', 'DN20', '1.0', 'DN25', '5.5', 'DN40']

In [223]: sum(float(value) for value, key in more_itertools.chunked(menge, 2) if key == "DN20")                                                       
Out[223]: 4.03
Wobei sich aber tatsächlich die Frage stellt wo so eine Liste her kommt wo die Elemente nicht die gleiche Bedeutung haben, beziehungsweise immer nur jedes zweite Element die gleiche Bedeutung hat.
“Vir, intelligence has nothing to do with politics!” — Londo Mollari
ossi047
User
Beiträge: 46
Registriert: Donnerstag 19. Dezember 2019, 15:57

Danke für eure Hilfe auf das wäre ich sowieso nie draufgekommen.
Die Zahlen ergeben sich aus technischen Berechnungen. Warum und
wieso sie so sind wie sie sind kann ich hier nicht erklären, dass würde
zu lange dauern. Auf jeden fall seit ihr super und ich hab wieder was
dazugelern.
Sirius3
User
Beiträge: 18274
Registriert: Sonntag 21. Oktober 2012, 17:20

Es geht nicht um die Zahlen, sondern um die Datenstruktur, die so die weitere Verarbeitung komplex macht, daher die Frage, woher kommt die Liste und kann man das nicht ändern?
Antworten