Schneller Weg, um die Summe einer Liste von zahlen, als mit einer for-Schleife?
Gibt es eine Möglichkeit, die Summe einer Liste von zahlen schneller als mit einer for-Schleife, vielleicht in der Python-Bibliothek? Oder ist das etwas, wirklich nur multi-threading /Vektor-Verarbeitung können effizient erledigen?
Edit: Nur um zu klären, könnte es sein, eine Liste von zahlen, unsortiert, nur von den Eingaben des Benutzers.
Meinst du das wirklich "schneller", oder meinst du "Pythonic"? Ist aufsummieren einer Liste von zahlen wirklich der Engpass in Ihrem code zu optimieren?
InformationsquelleAutor not-too-smatr | 2009-05-12
Du musst angemeldet sein, um einen Kommentar abzugeben.
Können Sie die Funktion sum() die Summe der Werte eines Arrays.
InformationsquelleAutor Chris Bartow
Noch eine weitere Möglichkeit zum summieren einer Liste mit der loop-Zeit:
InformationsquelleAutor Alex
Wenn jeder Begriff in der Liste einfach um den Wert 1 erhöht, oder wenn Sie finden ein Muster in der Serie, die Sie finden konnten, eine Formel für die Summierung n Bedingungen. Zum Beispiel die Summe der Reihe {1,2,3,...,n} = n(n+1)/2
Lesen Sie mehr hier
InformationsquelleAutor clawr
Gut, ich weiß nicht, ob es schneller, aber Sie könnten versuchen, ein wenig Kalkül, um es einer operation. (N*(N+1))/2 gibt die Summe von jeder Zahl von 1 bis N, und es gibt andere Formeln für die Lösung komplexer Summen.
InformationsquelleAutor Annath
Für eine Allgemeine Liste, müssen Sie mindestens über jedes Mitglied mindestens einmal zu der Summe, die ist genau das, was eine for-Schleife funktioniert. Mit Bibliothek-APIs (wie Summe) ist bequemer, aber ich bezweifle, es wäre sogar schneller sein.
nicht genau, es wird schneller sein, weil es vermeidet den Aufwand einer for-Schleife (variable Zuweisungen und Methodenaufrufe)
Das ist, weil es in C geschrieben ist... so oder so wird es schneller.
Richtig, es ist nicht wie sum() ist nicht mit einer for-Schleife in C. Es ist nur, dass C schneller ist als python (für die Teile von python nicht implementiert in C).
InformationsquelleAutor Tal Pressman