Skip to content

Wie erhalte ich die Summe einer Liste von Zahlen mit Rekursion?

Lösung:

Sie brauchen keine Schleife. Rekursion wird das für Sie tun.

def getSum(piece):
    if len(piece)==0:
        return 0
    else:
        return piece[0] + getSum(piece[1:]) 
print getSum([1, 3, 4, 2, 5])

Ich finde es etwas schöner, ohne die Länge explizit zu überprüfen:

def getSum(piece):
    return piece[0] + getSum(piece[1:]) if piece else 0

Demo:

>>> getSum([1, 2, 3, 4, 5])
15

Für akademische Zwecke (Python lernen) können Sie Rekursion verwenden:

def getSum(iterable):
    if not iterable:
        return 0  # End of recursion
    else:
        return iterable[0] + getSum(iterable[1:])  # Recursion step

Sie sollten jedoch keine Rekursion in echtem Produktionscode verwenden. Es ist nicht effizient und der Code viel weniger klar als bei der Verwendung von Built-Ins. Für diesen Fall brauchen Sie weder Rekursion noch Schleife. Verwenden Sie einfach die integrierte Summe:

>>>a = [1, 2, 3, 4, 5]
>>>sum(a) 
15
Click to rate this post!
[Total: 0 Average: 0]



Anderer Beitrag

Bluetooth-Mausverzögerung

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.