Vorschlag zur besseren gegenseitigen Hilfe (OOP nutzen)

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

qweet hat geschrieben:

Code: Alles auswählen

def connect_trends_of_same_direction_together
hat die aufgabe eine liste mit integer zusammenzufassen. alle positiven zahlen sollen addiert werden, bis die nächste negative zahl kommt. sobald das der fall ist, sollen alle negativen zahlen addiert werden, bis die nächste positive kommt...usw.
Könnte man so machen:

Code: Alles auswählen

from itertools import groupby

values = [1, 3, 4, -2, -6, -1, -1, 8, 1, 3]

def is_positive(number):
    return number >= 0

def sum_same_sign(iterable):
    for dummy, items in groupby(iterable, is_positive):
        yield sum(items)

summed_values = list(sum_same_sign(values))
print summed_values
modelnine
User
Beiträge: 670
Registriert: Sonntag 15. Januar 2006, 18:42
Wohnort: Celle
Kontaktdaten:

Oder auch einfach:

Code: Alles auswählen

import itertools

def trends_verbinden(lst):
    return [sum(l) for _, l in itertools.groupby(lst,lambda k:k>=0)]
und: ja, ich gebe mich geschlagen, haut alle auf mich drauf. Darf ich's auf meine schlechte Kindheit schieben? ;-)

--- Heiko.
Antworten