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 14, 2023
Weitergeben:
Invicti Web Application Security Scanner - die einzige Lösung, die eine automatische Überprüfung von Schwachstellen mit Proof-Based Scanning™ ermöglicht.

In Python helfen Listenverständnisse bei der Erstellung neuer Listen aus vorhandenen Iterablen wie Listen, Strings und Tupeln.

Mit ihrer prägnanten Syntax können Sie neue Listen in nur einer Zeile Code erstellen. Und in diesem Tutorial lernen Sie, wie Sie das machen können.

In den nächsten Minuten werden Sie mehr erfahren:

  • So erstellen Sie eine neue Liste mit for Schleifen,
  • Die Syntax für die Verwendung von Listenkomplexen in Python, und
  • Ändern von Listenauffassungen mit if bedingte Aussage.

Außerdem werden Sie mehrere Beispiele programmieren, die Ihnen helfen werden, die Listenverarbeitung besser zu verstehen.

Lasst uns eintauchen.🌊

Wie man Python-Listen mit for-Schleifen erstellt

Angenommen, Sie haben eine Liste mit Zahlen nums. Und Sie möchten eine weitere Liste erstellen, die den Kubus aller Zahlen in nums. 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 sind die folgenden Schritte vorgesehen:

  • Initialisieren einer leeren Liste num_cubes.
  • Schleife durch die nums Liste.
  • Zugriff auf jede Nummer numund berechne seinen Kubus mit Hilfe des Potenzierungsoperators: num**3.
  • Schließlich wird der kubierte Wert an die Liste angehängt num_cubes

Anmerkung: In Python ist der Potenzierungsoperator ** wird mit der Syntax verwendet: num**pow-die Zahl num wird mit der Potenz pow.

Mit der Listenverarbeitung in Python können Sie dies jedoch einfacher tun. Fahren wir fort und lernen wir die Syntax.

Python List Comprehension Syntax

Die allgemeine Syntax für das Verstehen von Listen ist im Folgenden dargestellt.

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

Lassen Sie uns die obige Syntax analysieren.

  • In Python werden Listen durch ein Paar von Platz Klammern []-daher müssen Sie die Anweisung zum Verstehen der Liste in [].
  • <item> in <iterable> bedeutet, dass Sie eine Schleife durch eine Iterable durchlaufen. Jedes Python-Objekt, das Sie in einer Schleife durchlaufen und auf einzelne Elemente zugreifen können - wie Listen, Tupel und Zeichenketten - sind Iterables.
  • <expression> ist die Ausgabe, die Sie für jede <item> im <iterable>.

Und das klingt einfach, ja?

Im Wesentlichen möchten Sie tun etwas für alle Artikel in der Liste (oder eine beliebige Iterable), um eine neue Liste.

Auf diese Weise können wir die Syntax vereinfachen, wie in der folgenden Abbildung dargestellt.

list-comprehension-syntax
Python List Comprehension Syntax (Bild vom Autor)

Nachdem Sie nun die Syntax gelernt haben, können Sie mit dem Programmieren beginnen. Sie können verwenden Geekflare's online Python IDE um diesen Beispielen zu folgen. Sie können sie auch auf Ihrem lokalen Rechner ausführen.

Beispiele für das Verstehen von Python-Listen

Im vorherigen Abschnitt haben Sie eine neue Liste erstellt num_cubes von nums. Beginnen wir damit, das mit Hilfe des Listenverständnisses umzuschreiben.

List Comprehension mit Zahlen verwenden

Verwenden wir nun die vereinfachte Syntax wie folgt:

  • <do-this>: Hier müssen Sie jeden Würfel num. Also ersetzen <do-this> mit num**3.
  • <all-items>: Die Schleifenvariable ist num-die einzelnen Nummern in der Liste.
  • <this-list>: Die bestehende Liste lautet nums.
  • Und [num**3 for num in nums] ist der endgültige Ausdruck. ✅

Zusammengefasst ergibt sich der folgende Codeschnipsel:

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

# Output
[8, 27, 125, 343]

Herzlichen Glückwunsch, du hast dein erstes Listenverständnis programmiert.🎉

Lassen Sie uns nun mit Python-Strings arbeiten.

List Comprehension mit Strings verwenden

Angenommen, Sie haben die Liste authors -Du kannst die Liste unten mit deinen Lieblingsautoren umschreiben 😄.

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

Beachten Sie, dass die Namen der Autoren in der obigen Liste klein geschrieben sind. Wir möchten sie nun im Format Titel Fall und speichern sie in einer neuen Liste namens author_list.

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

Das ist alles, was Sie tun müssen:

  • Schleife durch die authors Liste und für jede author in der Liste,
  • aufrufen author.title() um eine Kopie der Zeichenkette mit Titel zu erhalten.

Der Python-Code hierfür ist unten dargestellt:

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']

In der obigen Ausgabe sehen Sie, wie die Namen aller Autoren in Großbuchstaben formatiert wurden - so wie wir es wollten.

List Comprehension mit mehreren Listen verwenden

Bisher haben Sie gelernt, wie Sie mit Hilfe des Listenverständnisses neue Listen aus einer bestehenden Liste erstellen können. Jetzt wollen wir lernen, wie man eine neue Liste aus mehreren Listen erstellt.

Betrachten Sie zum Beispiel folgendes Problem: Sie haben zwei Listen l_arr und b_arr die die Längen und Breiten von 4 Rechtecken enthält.

Und Sie müssen eine neue Liste erstellen area die die Fläche dieser 4 Rechtecke umfasst. Erinnere dich, area = length * breadth.

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 es mit Pythons zip() Funktion.

Anmerkung: In Python wird die zip() Funktion nimmt eine oder mehrere Iterables als Argumente mit der Syntax zip(*iterables). Sie gibt dann einen Iterator von Tupeln zurück, wobei das Tupel i enthält das Element i aus jeder der Iterablen.

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

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

Daher können Sie eine Schleife durch zip(l_arr,b_arr) wie unten dargestellt:

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 innerhalb einer Listenauflistung verwenden können.

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>]

Anstelle der Berechnung der <expression> für alle Artikel, sondern nur für die Artikel, die eine bestimmte Bedingung erfüllen <condition>-wo, condition := True. Dies führt zu einer vereinfachten Syntax wie dargestellt:

list-comprehension-with-condition-syntax
Python Listenverständnis mit Bedingungssyntax (Bild vom Autor)

▶ Damit kommen wir zu den Codebeispielen.

Python List Comprehension mit Bedingungsbeispielen

#1. Sie erhalten die Zeichenfolge "Ich lerne Python im Jahr 2022". Sie möchten eine Liste aller Ziffern in dieser Zeichenkette erhalten. Wie macht man das also?

In Python, <char>.isdigit() wirkt auf ein Zeichen ein <char> und gibt zurück True wenn es sich um eine Ziffer (0-9) handelt; andernfalls wird False.

Der folgende Codeschnipsel zeigt, wie Sie die Liste aller Ziffern in der Zeichenkette sammeln können str1.

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:

  • durchlaufen Sie eine Schleife durch die Zeichenfolge str1,
  • Zugang zu jedem char um zu prüfen, ob es sich um eine Ziffer handelt, indem man die isdigit() Methode, und
  • hinzufügen. char zur neuen Liste digits nur, wenn es eine Ziffer ist.

Nehmen wir ein anderes Beispiel.

#2. Sie haben eine Liste von Früchten.🍊 Und Sie möchten eine Liste erstellen starts_with_b die alle Früchte aus dem fruits Liste, die mit b. Sie können die startswith() Methode, um die Bedingung zu schreiben.

Die <str>.startswith('char') gibt zurück. True wenn mit 'char' beginnt; sonst wird False.

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 'blueberry' und 'banana' das sind die beiden Früchte, die mit 'b' im fruits Liste, wie wir erwartet hatten.

Damit ist unsere Diskussion über das Verstehen von Listen abgeschlossen.

Schlussfolgerung

Ich hoffe, dieses Tutorial hat Ihnen geholfen, die Listenverarbeitung in Python zu verstehen.

Lassen Sie uns zusammenfassen:

  • Sie können verwenden [ für in ] um eine neue Liste unter Verwendung des Listenverständnisses zu erstellen.
  • Zusätzlich können Sie die Syntax [ für in wenn ] mit dem if bedingte Aussage.

Außerdem haben Sie mehrere Beispiele programmiert. Als nächsten Schritt können Sie versuchen, einige Ihrer bestehenden Python-Schleifen für die Listenerstellung mit Hilfe des Listenverständnisses umzuschreiben. Viel Spaß beim Programmieren! Bis zum nächsten Lernprogramm 😄.

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

  • 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