Geekflare wird von unserem Publikum unterstützt. Es kann sein, dass wir durch den Kauf von Links auf dieser Seite Affiliate-Provisionen verdienen.
Unter Entwicklung Zuletzt aktualisiert: September 24, 2023
Weitergeben:
Invicti Web Application Security Scanner - die einzige Lösung, die eine automatische Überprüfung von Schwachstellen mit Proof-Based Scanning™ ermöglicht.

Lernen Sie alles über die Funktion sum() in Python: von der Syntax bis zur Verwendung mit verschiedenen Iterablen - mit hilfreichen Codebeispielen.

Bei der Arbeit mit Python-Iterablen, wie z.B. einer Liste von Zahlen, besteht eine häufige Operation darin, die Summe aller Elemente in der Liste zu ermitteln. Auch bei der Arbeit mit anderen Iterablen wie Tupeln und Mengen werden wir auf solche Operationen stoßen.

Dies kann auf verschiedene Arten geschehen, aber die empfohlene Pythonische Methode ist die Verwendung der eingebauten Funktion sum().

Hier werden wir uns zunächst die anderen Ansätze wie Schleifen und die Definition einer Funktion ansehen. Anschließend lernen wir die Syntax der Python-Funktion sum() und Codebeispiele kennen, um sie besser zu verstehen.

Summieren von Werten in einer Python Iterable

Summieren von Werten in einer Python-Interable

📋 Sie können in einer Python REPL mitcodieren. Oder Sie können den Online-Python-Editor von Geekflare verwenden.

Betrachten Sie die folgende Liste von Zahlen:

>>> nums = [2,8,5,3,11,7,9]

Unser Ziel ist es, die Summe aller Zahlen in der Liste zu finden. Wir werden uns bald mit der Python-Funktion sum() befassen, aber beginnen wir mit einigen der anderen Ansätze, die wir wählen können. Dazu gehören:

  • Verwendung einer einfachen for-Schleife
  • Verwendung der Funktion reduce() aus dem Modul functools
  • Definieren Sie eine eigene Funktion

Schleifen verwenden

Um die Summe aller Elemente in einer Liste zu ermitteln, können wir eine für-Schleife wie folgt verwenden:

  • Initialisieren Sie die Variable total auf Null.
  • Führen Sie eine Schleife durch die Liste nums und rufen Sie jede Zahl auf.
  • Fügen Sie die Zahl zur Gesamtsumme.
>>> nums = [2,8,5,3,11,7,9]
>>> Summe = 0
>>> for num in nums:
... Summe = num
...
>>> Summe
45

Verwendung der Funktion Reduzieren

Ein anderer Ansatz für die Summierung von Iterablen ist die Verwendung der Funktionreduce(). Die Funktion reduzieren, die in Pythons Modul functools integriert ist, nimmt eine Funktion und eine Iterable auf. Sie reduziert die Iterable, indem sie die Funktion nacheinander auf die Elemente der Iterable anwendet.

Hier verwenden wir eine Lambda-Funktion, um die Addition von zwei Zahlen zu definieren und die Liste zu übergeben nums als Iterable.

>>> nums = [2,8,5,3,11,7,9]
>>> from functools import reduce
>>> total = reduce(lambda n1, n2: n1 n2, nums)
>>> total
45

Die Funktion reduce() addiert nacheinander zwei Zahlen - von links nach rechts -, bis sie auf einen einzigen Summenwert reduziert wird:

Die-Reduktions-Funktion verwenden

Verwendung einer benutzerdefinierten Funktion

Wir können auch eine benutzerdefinierte Funktion definieren, um dies zu tun. Hier definieren wir eine Funktion sum_list, sterben:

  • Eine Liste von Zahlen als Argument annimmt und
  • Die Summe der Elemente in einer Liste zurückgibt.

Der Hauptteil der Funktion verwendet das Schleifen-Konstrukt, das wir uns bereits angeschaut haben. Aber die Definition einer Funktion bietet uns Wiederverwendbarkeit.

>>> def sum_list(some_list):
... total = 0
... for num in some_list:
... total = num
... return total
...

Der Aufruf der Funktion sum_list() mit nums als Argument liefert die Summe von 45:

>>> nums = [2,8,5,3,11,7,9]
>>> total = sum_list(nums)
>>> total
45

Als nächstes lernen wir die integrierte Funktion sum() kennen. Sie ist nicht nur prägnant, sondern auch robust, da sie mit mehreren Iterablen und Datentypen gut funktioniert.

Syntax der Python-Summenfunktion

Die Syntax zur Verwendung der Funktion sum() lautet wie folgt:

sum(iterable, start)

Hier,

  • iterable ist ein erforderlich Argument. Es kann jede beliebige Iterable sein, für die die Summierungsoperation gültig ist, wie z.B. eine Liste oder Tupel von Zahlen. Der Aufruf der Funktion sum() mit Python-Strings führt zu einer TypeError-Ausnahme (mehr dazu später).
  • start ist ein Optionales Argument. Es ist oft ein numerischer Wert, der zur berechneten Summe addiert wird. Dies kann hilfreich sein, wenn Sie einen konstanten Wert zum Ergebnis hinzufügen müssen.

Nachdem wir nun die Syntax der Python-Funktion sum() kennengelernt haben, wollen wir sie zum Summieren von Iterablen verwenden.

Summieren von Iterablen mit der Summenfunktion

Summen-Iterables-mit-Pythons-Summen-Funktion

#1. Liste

Lassen Sie uns die Summe der Zahlen in der Liste nums mit der Funktion sum() ermitteln:

>>> nums = [2,8,5,3,11,7,9]
>>> sum_1 = sum(nums)
>>> sum_1
45

Den optionalen Startwert verwenden

Um einen konstanten Wert zur Summe hinzuzufügen, können wir die Funktion sum() mit dem optionalen Startwert verwenden. Hier geben wir einen Startwert von 100 als Positionsargument ein:

>>> sum_start = sum(nums,100)
>>> sum_start
145

Der Startwert kann auch als Schlüsselwortargument angegeben werden:

>>> sum_start = sum(zahlen,start=10)
>>> sum_start
55

#2. Tupel

Die Funktion sum() funktioniert auch mit Tupeln. Wir erstellen ein Tupel nums_tuple, wenn wir die Liste nums in einen Tupel umwandeln:

>>> nums_tuple = tuple(nums)
>>> nums_tuple
(2, 8, 5, 3, 11, 7, 9)
>>> sum_2 = sum(zaehlen_tupel)
>>> sum_2
45

#3. Setzen

Wir können die Funktion sum() auch mit einer Menge von Zahlen verwenden:

>>> nums_set = set(nums)
>>> nums_set
{2, 3, 5, 7, 8, 9, 11}

Hier wandeln wir die Liste nums in einer Python-Menge um und berechnen die Summe der Elemente in nums_set.

>>> sum_3 = sum(nums_set)
>>> sum_3
45

#4. Wörterbuch

Betrachten Sie das folgende student_dict mit numerischen Schlüsseln. Beachten Sie, was passiert, wenn Sie die Funktion sum() mit diesem Wörterbuch als Argument aufrufen.

>>> students_dict = {1:106,2:112,3:127}
>>> sum_4 = sum(students_dict)
>>> sum_4
6

Die Funktion sum() gibt standardmäßig die Summe der Schlüssel zurück.

Summieren der Schlüssel

Wir wissen, dass das Standardverhalten Darin besteht, die Schlüssel des Wörterbuchs zu summieren.

Sie können dies jedoch explizit machen, indem Sie die Wörterbuchmethode keys() verwenden, um auf die Schlüssel zuzugreifen. Und dann übergeben Sie die Liste der Schlüssel an die Funktion sum():

>>> sum_keys = sum(students_dict.keys())
>>> sum_keys
6

Summieren der Werte

Wenn Sie stattdessen die Werte des Wörterbuchs summieren möchten, greifen Sie auf die Werte zu, indem Sie die Methode values() für das Wörterbuchobjekt aufrufen:

>>> sum_vals = sum(students_dict.values())
>>> sum_vals
345

Verwendung der Summenfunktion von Python mit anderen numerischen Datentypen

Verwendung der Python-Summenfunktion mit anderen numerischen Datentypen

Bisher haben wir gesehen, wie Sie die Funktion sum() mit Iterablen von Ganzzahlen verwenden können. Sehen wir uns nun ein paar Beispiele mit anderen numerischen Datentypen an.

Komplexe Zahlen

Die Funktion sum() kann auch zum Summieren komplexer Zahlen verwendet werden. In diesem Beispiel ist nums_c eine Liste mit komplexen Zahlen:

>>> nums_c = [3 4j, 1 2j]
>>> sum_c = sum(nums_c)
>>> sum_c
(4 6j)

Fließkommazahlen

Hier verwenden wir die Funktion sum(), um die Liste der Fließkommazahlen nums_f zu summieren:

>>> nums_f = [1.8,2.5,3.6,7.2]
>>> sum_f = sum(nums_f)
>>> sum_f
15.100000000000001

📑 Für eine verbesserte Präzision des Ergebnisses der Addition von Fließkommazahlen können Sie die Funktion fsum() aus dem Mathematikmodul verwenden, um Iterablen mit Fließkommazahlen zu summieren.

Verflachen mit der Summenfunktion

Sehen wir uns nun an, wie die Funktion sum() zum Verflachen und Verketten von Iterablen verwendet werden kann.

Verflüchtigung einer Liste

Nehmen wir an, wir haben eine verschachtelte Liste:

>>> Listen = [[2,4,6],[3,5,7]]

Wenn wir die Funktion sum() aufrufen, indem wir diese verschachtelte Liste als Argument zusammen mit einer leeren Liste als Startwert übergeben:

>>> sum(listen,[])
[2, 4, 6, 3, 5, 7]

Wir sehen, dass die verschachtelte Liste nun zu einer einzigen Liste von Zahlen verflacht ist.

Wenn wir uns die Liste in der Form l3 = [l1,l2] vorstellen, verkettet die Funktion sum() die beiden in der Liste l3 verschachtelte Listen l1 und l2.

Versuchen Sie als kurze Übung, die Funktion sum() auf andere verschachtelte Iterables anwenden.

Häufiger Fallstrick: Verwenden Sie die sum()-Funktion von Python nicht mit Strings

Da wir gesehen haben, dass die Funktion sum() zum Verflachen und Verketten von Listen (und anderen Iterablen wie Tupeln) verwendet werden kann, ist es verlockend zu denken, dass wir sie auch zum Verketten von Zeichenketten verwenden können.

Aber wenn Sie das versuchen, stoßen Sie auf einen TypeError:

>>> sum(['a','b','c'],'')
Traceback (most recent call last):
 Datei "<stdin>", Zeile 1, in <module>
TypeError: sum() can't sum strings [use ''.join(seq) instead]

Die Funktion sum() kann auch nicht zum Summieren (oder Verketten) von Zeichenketten verwendet werden.

Wie Sie jedoch in der obigen Fehlermeldung sehen, können Sie die Methode join() verwenden, um eine Liste von Zeichenketten zu einer einzigen Zeichenkette zu verketten.

>>> ''.join(['a','b','c'])
'abc'

Schlussfolgerung

In diesem Tutorial haben wir gelernt, wie man die eingebaute Funktion sum() verwendet, um die Summe aller Elemente in einer Iterable zu ermitteln. Die allgemeine Syntax zur Verwendung der Funktion sum() lautet: sum(iterable, start), wobei iterable ein erforderlich Argument und start ein Optionales Das Argument ist.

Anschließend haben wir mehrere Beispiele programmiert, um die Verwendung der Funktion sum() mit Iterablen wie Listen, Tupeln, Mengen und Wörterbüchern zu verstehen. Später haben wir uns angeschaut, wie die Funktion sum() für die Verflachung und Verkettung von Iterablen verwendet werden kann - mit Ausnahme von Python-Strings.

Ich hoffe, Sie haben dieses Tutorial hilfreich gefunden. Als Nächstes sollten Sie sich dieses Tutorial über die map-Funktion von Python ansehen.

  • Bala Priya C
    Autor
Dank an unsere Sponsoren
Weitere gute Lektüre zum Thema Entwicklung
Energie für Ihr Unternehmen
Einige der Tools und Dienste, die Ihr Unternehmen beim Wachstum unterstützen.
  • Invicti nutzt das Proof-Based Scanning™, um die identifizierten Schwachstellen automatisch zu überprüfen und innerhalb weniger Stunden verwertbare Ergebnisse zu erzielen.
    Versuchen Sie Invicti
  • Web Scraping, Residential Proxy, Proxy Manager, Web Unlocker, Search Engine Crawler und alles, was Sie zum Sammeln von Webdaten benötigen.
    Versuchen Sie Brightdata
  • Monday.com ist ein All-in-One-Betriebssystem, mit dem Sie Projekte, Aufgaben, Arbeit, Vertrieb, CRM, Arbeitsabläufe und vieles mehr verwalten können.
    Versuch Montag
  • Intruder ist ein Online-Schwachstellen-Scanner, der Schwachstellen in Ihrer Infrastruktur aufspürt, um kostspielige Datenschutzverletzungen zu vermeiden.
    Versuchen Sie Intruder