HOWTO · Python

Liste von Nullen in Python erstellen

Dieses Tutorial zeigt, wie man in Python eine Liste mit Nullen erzeugt. Es stellt verschiedene Methoden vor, etwa Listenabstraktion (List Comprehension), den Multiplikationsoperator und die Verwendung der NumPy-Bibliothek. Ob Anfänger oder erfahrener Programmierer – dieser Leitfaden bietet klare Codebeispiele und Erklärungen, mit denen Sie effizient Null-Listen für Ihre Projekte erstellen können.

Auf dieser Seite

Um eine Python-Liste mit n Nullen zu erstellen, verwenden Sie [0] * n. Beispielsweise erzeugt [0] * 5 eine Liste mit fünf ganzzahligen Nullen. Das ist die klarste Wahl, wenn die gewünschte Länge feststeht und jedes Element denselben Wert haben soll. Die folgenden Beispiele verwenden n = 5, damit Sie die Ansätze direkt vergleichen können.

Verwenden Sie Listenmultiplikation für eine Liste fester Länge mit Nullen

Bei der Listenmultiplikation werden die Elemente der linken Liste wiederholt. Da [0] eine ganze Zahl enthält, ergibt die Multiplikation mit n eine Liste mit n ganzzahligen Nullen:

n = 5
zeros = [0] * n

Das Ergebnis ist eine neue Liste. Bei einer Anzahl von null entsteht []; auch eine negative Anzahl ergibt [], denn Python wiederholt eine Sequenz bei einer nicht positiven Anzahl nullmal. In diesem Beispiel ist der wiederholte Wert eine ganze Zahl, daher kann jeder Listeneintrag unabhängig neu zugewiesen werden. Wenn Sie ein veränderliches Objekt wie eine verschachtelte Liste wiederholen, verweist jeder Eintrag auf dasselbe Objekt. Verwenden Sie stattdessen eine Listenabstraktion, um eigenständige Objekte zu erzeugen.

Erstellen Sie mit einer Listenabstraktion eine Liste mit Nullen

Eine Listenabstraktion wertet ihren Ausdruck für jedes Element eines Iterables einmal aus. Hier liefert range(n) fünf Durchläufe, und _ steht für einen Schleifenwert, den der Ausdruck nicht benötigt. Der Begriff Listenabstraktion bezeichnet diesen Ausdruck in eckigen Klammern:

n = 5
zeros = [0 for _ in range(n)]

Verwenden Sie diese Form, wenn der Wert für jeden Durchlauf berechnet wird oder die Erzeugungsregel sichtbar sein soll. Da der Schleifenwert hier ungenutzt bleibt, ist _ eine übliche Bezeichnung; in Python hat sie keine besondere Funktion. Sie können 0 durch einen Ausdruck ersetzen, der vom Schleifenwert abhängt, wenn jedes Element anders berechnet werden soll.

Verwenden Sie eine Schleife, wenn für jeden Wert eigene Logik nötig ist

Eine explizite Schleife ist hilfreich, wenn das Erstellen jedes Elements mehrere Anweisungen, eine Bedingung oder einen weiteren Arbeitsschritt umfasst. Hängen Sie bei jedem Durchlauf einen Wert an:

n = 5
zeros = []
for _ in range(n):
    zeros.append(0)

So entsteht derselbe Typ von Python-Liste wie bei den Beispielen zur Listenmultiplikation und Listenabstraktion. Für die einfache Aufgabe, eine ganze Zahl zu wiederholen, stellen die beiden anderen Formen das Ergebnis kompakter dar. Verwenden Sie die Schleife, wenn sich die Arbeit pro Element dadurch leichter nachvollziehen lässt. Ersetzen Sie in einem echten Programm die Anweisung append(0) durch die Arbeit, die zum Berechnen oder Vorbereiten jedes Werts nötig ist.

Wiederholen Sie mit itertools.repeat() den Wert null

itertools.repeat() liefert wiederholt dasselbe Objekt. Übergeben Sie den Wert und die Anzahl und geben Sie den Iterator an list() weiter, wenn eine Liste benötigt wird:

from itertools import repeat

n = 5
zeros = list(repeat(0, n))

Das ist nützlich, wenn sich ein Iterator direkt verwenden lässt oder ein Iterator mit wiederholten Werten in einen größeren Verarbeitungsschritt passt. Der Aufruf list(...) verbraucht den Iterator und speichert alle fünf Werte im Arbeitsspeicher. Wenn das gewünschte Ergebnis ohnehin eine Liste ist, ist [0] * n daher meist einfacher.

Verwenden Sie NumPy, wenn Sie ein numerisches Array benötigen

Für numerische Berechnungen mit NumPy-Operationen erzeugt numpy.zeros(n) ein NumPy-Array mit n Elementen, deren Wert null ist. Wenn NumPy installiert ist, erstellt beispielsweise zuerst import numpy as np und danach zeros = np.zeros(5) ein Array. Das Ergebnis ist ein ndarray, keine eingebaute Python-Liste. Wandeln Sie es nur dann mit zeros.tolist() um, wenn ein anderer Teil Ihres Codes ausdrücklich eine Liste benötigt. NumPy ist eine zusätzliche Abhängigkeit und ist sinnvoll, wenn Sie seine Array-Operationen, Formen oder Datentypen benötigen. Für eine gewöhnliche Liste verwenden Sie [0] * n, ohne eine zusätzliche Abhängigkeit hinzuzufügen.

Wählen Sie die Multiplikation für eine einfache Liste fester Länge, eine Listenabstraktion für einen Ausdruck, der pro Element ausgewertet wird, eine Schleife für eigene Arbeitsschritte, itertools.repeat() bei direktem Nutzen des Iterators oder NumPy, wenn ein Array die passende Datenstruktur ist.