Heim >Backend-Entwicklung >Python-Tutorial >Wie kann ich die kumulative Summe einer Liste in Python effizient berechnen?

Wie kann ich die kumulative Summe einer Liste in Python effizient berechnen?

Patricia Arquette
Patricia ArquetteOriginal
2024-12-09 15:56:16227Durchsuche

How Can I Efficiently Calculate the Cumulative Sum of a List in Python?

Kumulative Summe in Python

Frage:

Wie können wir die kumulative Summe von Zahlen in einer Liste finden, z [4, 4 6, 4 6 12]?

Einführung:

Die Berechnung der kumulierten Summe erfordert das wiederholte Addieren des nächsten Elements zur laufenden Summe. Während dies mit einer einfachen Schleife erreicht werden kann, gibt es effizientere Ansätze mit NumPy oder benutzerdefinierten Python-Generatoren.

NumPy-Methode:

Die Cumsum-Funktion von NumPy bietet eine effiziente Lösung :

import numpy as np

time_interval = [4, 6, 12]
np.cumsum(time_interval)
# Output: [4, 10, 22]

Dieser Ansatz ist stark optimiert und wird für numerische Operationen im Großen und Ganzen empfohlen Arrays.

Python-Generator:

Für prägnante und speichereffiziente Lösungen in reinem Python sollten Sie die Verwendung eines Generators in Betracht ziehen:

def accumu(iterable):
    yield next(iterable)
    for item in iterable:
        yield item + sum(accumu(iterable))

Verwenden Sie diesen Generator:

list(accumu(time_interval))
# Output: [4, 10, 22]

Dieser Generator akkumuliert träge Elemente und eignet sich daher für die Iteration über große Sequenzen oder wann Das Gedächtnis ist ein Problem.

Das obige ist der detaillierte Inhalt vonWie kann ich die kumulative Summe einer Liste in Python effizient berechnen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn