Listenverständnis in Python – mit Beispielen

In Python helfen Ihnen List Comprehensions beim Erstellen neuer Listen aus vorhandenen Iterables wie Listen, Strings und Tupeln.

Ihre prägnante Syntax ermöglicht es Ihnen, neue Listen in nur einer Codezeile zu erstellen. Und dieses Tutorial zeigt Ihnen, wie Sie das tun können.

In den nächsten Minuten lernen Sie:

  • Wie erstelle ich eine neue Liste mit for-Schleifen,
  • Die Syntax für die Verwendung von Listenverständnissen in Python und
  • Wie man Listenverständnisse mit if-bedingter Anweisung ändert.

Darüber hinaus werden Sie auch mehrere Beispiele codieren, die Ihnen helfen, Listenverständnisse besser zu verstehen.

Tauchen wir ein.🌊

So erstellen Sie Python-Listen mit for-Schleifen

Angenommen, Sie haben eine Liste mit Zahlennummern. Und Sie möchten eine weitere Liste erstellen, die die Kubik aller Zahlen in Zahlen enthält. So machen Sie es mit einer for-Schleife in Python:

nums = [2,3,5,7]
num_cubes = []
for num in nums:
  num_cubes.append(num**3)

print(num_cubes)

# Output
[8, 27, 125, 343]

Im obigen Code haben wir die folgenden Schritte:

  • Initialisieren Sie eine leere Liste num_cubes.
  • Durchlaufen Sie die Zahlenliste.
  • Greifen Sie auf jede Zahl num zu und berechnen Sie ihren Würfel mit dem Potenzierungsoperator: num**3.
  • Hängen Sie schließlich den Kubikwert an die Liste num_cubes an

Hinweis: In Python wird der Potenzierungsoperator ** mit der folgenden Syntax verwendet: num**pow – die Zahl num wird potenziert mit pow.

Sie können dies jedoch einfacher mit Listenverständnis in Python tun. Lassen Sie uns fortfahren, seine Syntax zu lernen.

Python List Comprehension-Syntax

Die allgemeine Syntax für das Listenverständnis ist unten dargestellt.

<new_list> = [<expression> for <item> in <iterable>]

Analysieren wir die obige Syntax.

  • In Python werden Listen durch ein Paar eckiger Klammern getrennt []– daher müssen Sie die Erklärung zum Listenverständnis beifügen [].
  • in bedeutet, dass Sie eine Iterable durchlaufen. Jedes Python-Objekt, das Sie durchlaufen und auf einzelne Elemente zugreifen können, wie Listen, Tupel und Zeichenfolgen, sind iterierbar.
  • ist die Ausgabe, die Sie für jedes in berechnen möchten.

Und das klingt einfach, ja?

Im Wesentlichen möchten Sie etwas für alle Elemente in der Liste (oder einer iterierbaren) tun, um eine neue Liste zu erhalten.

Damit können wir die Syntax vereinfachen, wie im Bild unten gezeigt.

Python List Comprehension Syntax (Bild vom Autor)

Nachdem Sie nun die Syntax gelernt haben, ist es an der Zeit, mit dem Codieren zu beginnen. Sie können die Online-Python-IDE von wdzwdz verwenden, um diesen Beispielen zu folgen. Oder Sie könnten sie auf Ihrem lokalen Computer ausführen.

Beispiele für das Verständnis von Python-Listen

Im vorherigen Abschnitt haben Sie eine neue Liste num_cubes aus nums erstellt. Beginnen wir damit, dies mithilfe des Listenverständnisses umzuschreiben.

Verwenden des Listenverständnisses mit Zahlen

Lassen Sie uns nun die vereinfachte Syntax wie folgt verwenden:

  • : Hier müssen Sie jede Zahl in Würfel schneiden. Ersetzen Sie also durch num**3.
  • : Die Schleifenvariable ist num – die einzelnen Zahlen in der Liste.
  • : Die vorhandene Liste, die wir haben, ist nums.
  • Und [num**3 for num in nums] ist der letzte Ausdruck. ✅

Zusammenfassend haben wir das folgende Code-Snippet:

num_cubes = [num**3 for num in nums]
print(num_cubes)

# Output
[8, 27, 125, 343]

Herzlichen Glückwunsch, Sie haben Ihr erstes Listenverständnis codiert.🎉

Lassen Sie uns weiter mit Python-Strings arbeiten.

Verwenden von Listenverständnis mit Zeichenfolgen

Angenommen, Sie haben die Autorenliste – Sie können die Liste unten mit Ihren Lieblingsautoren umschreiben.😄

authors = ["jane austen","george orwell","james clear","cal newport"]

Beachten Sie, dass die Namen der Autoren in der obigen Liste in Kleinbuchstaben geschrieben sind. Wir möchten sie nun in der Groß-/Kleinschreibung des Titels formatieren und in einer neuen Liste namens author_list speichern.

Hinweis: In Python die String-Methode Titel() akzeptiert eine Zeichenfolge als Argument und gibt eine Kopie der Zeichenfolge zurück, die in der Groß-/Kleinschreibung des Titels formatiert ist. Das heißt, der erste Buchstabe jedes Wortes wird groß geschrieben: Vorname Nachname

Hier ist also alles, was Sie tun müssen:

  • Schleife durch die Autorenliste und für jeden Autor in der Liste,
  • Rufen Sie author.title() auf, um eine Kopie des Strings in Groß- und Kleinbuchstaben zu erhalten.

Und der Python-Code dafür ist unten gezeigt:

authors = ["jane austen","george orwell","james clear","cal newport"]

author_list = [author.title() for author in authors]
print(author_list)

# Output
['Jane Austen', 'George Orwell', 'James Clear', 'Cal Newport']

Beachten Sie in der obigen Ausgabe, wie die Namen aller Autoren in der Groß-/Kleinschreibung des Titels formatiert wurden – was wir wollten.

Verwenden des Listenverständnisses mit mehreren Listen

Bisher haben Sie gelernt, wie Sie Listenverständnis verwenden, um neue Listen aus einer vorhandenen Liste zu erstellen. Lassen Sie uns nun lernen, wie Sie aus mehreren Listen eine neue Liste erstellen.

Stellen Sie sich beispielsweise folgendes Problem vor: Sie haben zwei Listen l_arr und b_arr, die die Längen und Breiten von 4 Rechtecken enthalten.

Und Sie müssen einen neuen Listenbereich erstellen, der den Bereich dieser 4 Rechtecke enthält. Denken Sie daran, Fläche = Länge * Breite.

l_arr = [4,5,1,3]
b_arr = [2,1,7,9]

Sie benötigen Elemente aus beiden Listen (l_arr und b_arr), um die Fläche zu berechnen. Und Sie können dies mit der Funktion zip() von Python tun.

Hinweis: In Python übernimmt die Funktion zip() eine oder mehrere Iterables als Argumente mit der Syntax zip(*iterables). Es gibt dann einen Iterator von Tupeln zurück, wobei das Tupel i das Element i von jedem der Iterablen enthält.

Das folgende Bild beschreibt dies im Detail. Sie haben 4 Werte in l_arr und b_arr, also reicht der Bereich der Indizes von 0 bis 3. Wie Sie sehen können, enthält das Tupel 0 l_arr[0] und b_arr[0]Tupel 1 enthält l_arr[1] und b_arr[1]usw.

Python-zip()-Funktion (Bild vom Autor)

Daher können Sie zip(l_arr,b_arr) wie unten gezeigt durchlaufen:

area = [l*b for l,b in zip(l_arr,b_arr)]
print(area)

# Output
[8,5,7,27]

Im nächsten Abschnitt erfahren Sie, wie Sie bedingte Anweisungen in einem Listenverständnis verwenden.

Python-Listenverständnis mit Bedingungssyntax

Beginnen wir damit, auf der vorherigen Syntax für das Listenverständnis aufzubauen.

Hier ist die Syntax:

<new_list> = [<expression> for <item> in <iterable> if <condition>]

Anstatt den für alle Elemente zu berechnen, möchten Sie dies nur für diejenigen Elemente tun, die eine bestimmte erfüllen – wobei Bedingung := True ist. Und dies führt zu einer vereinfachten Syntax wie gezeigt:

Python-Listenverständnis mit Bedingungssyntax (Bild vom Autor)

▶ Lassen Sie uns damit zu Codebeispielen übergehen.

Python-Listenverständnis mit Bedingungsbeispielen

#1. Sie erhalten die Zeichenfolge „Ich lerne Python im Jahr 2022“. Sie möchten eine Liste aller Ziffern in dieser Zeichenfolge erhalten. Wie machst du das?

In Python wirkt .isdigit() auf ein Zeichen und gibt True zurück, wenn es eine Ziffer (0-9) ist; andernfalls gibt es False zurück.

Das folgende Code-Snippet zeigt, wie Sie die Liste aller Ziffern in der Zeichenfolge str1 sammeln können.

str1 = "I'm learning Python3 in 2022"

digits = [char for char in str1 if char.isdigit()]

print(digits)

# Output
['3', '2', '0', '2', '2']

Im obigen Code:

  • du schleifst den String str1 durch,
  • Greifen Sie auf jedes Zeichen zu, um zu prüfen, ob es sich um eine Ziffer handelt, indem Sie die Methode isdigit() verwenden, und
  • fügen Sie char nur dann zur neuen Liste hinzu, wenn es sich um eine Ziffer handelt.

Nehmen wir ein anderes Beispiel.

#2. Sie haben eine Liste mit Früchten.🍊 Und Sie möchten eine Liste beginnend_mit_b erstellen, die alle Früchte aus der Früchteliste enthält, die mit b beginnen. Sie können die Methode startedwith() verwenden, um die Bedingung zu schreiben.

.startswith(‚char‘) gibt True zurück, wenn mit ‚char‘ beginnt; andernfalls gibt es False zurück.

fruits = ['blueberry','apple','banana','orange','cherry']

starts_with_b = [fruit for fruit in fruits if fruit.startswith('b')]

print(starts_with_b)

# Output
['blueberry', 'banana']

In der obigen Ausgabe erhalten wir „Heidelbeere“ und „Banane“, die die beiden Früchte sind, die wie erwartet mit „b“ in der Fruchtliste beginnen.

Und damit endet unsere Diskussion über das Listenverständnis.

Fazit

Ich hoffe, dieses Tutorial hat Ihnen geholfen, Listenverständnisse in Python zu verstehen.

Fassen wir zusammen:

  • Sie können verwenden [<do this> for <all-items> in <this-list>] um eine neue Liste mit Listenverständnis zu erstellen.
  • Darüber hinaus können Sie die Syntax verwenden [<do this> for <all-items> in <this-list> if <condition-is-True>] mit der bedingten if-Anweisung.

Darüber hinaus haben Sie auch mehrere Beispiele codiert. Als nächsten Schritt können Sie versuchen, einige Ihrer vorhandenen Python-Schleifen für die Listenerstellung mithilfe des Listenverständnisses neu zu schreiben. Viel Spaß beim Codieren! Bis zum nächsten Tutorial.😄

Sie können sich jetzt ansehen, wie Sie eine Liste in ein Wörterbuch umwandeln oder lernen, wie Sie mit Dateien in Python umgehen.

  So verwischen Sie ein Bild in PowerPoint