Geekflare wird von unserem Publikum unterstützt. Wir können Affiliate-Provisionen durch den Kauf von Links auf dieser Website verdienen.
Teilen:

Listenverständnis in Python – mit Beispielen

Python-Listenverständnis
Invicti Web Application Security Scanner – die einzige Lösung, die eine automatische Verifizierung von Schwachstellen mit Proof-Based Scanning™ bietet.

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:

  • So erstellen Sie eine neue Liste mit for Schleifen,
  • Die Syntax für die Verwendung von Listenverständnissen in Python und
  • So ändern Sie Listenverständnisse mit if bedingte Aussage.

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

Tauchen wir ein.🌊

How to Create Python Lists Using for Loops

Angenommen, Sie haben eine Liste mit Zahlen nums. Und Sie möchten eine weitere Liste erstellen, die den Würfel aller Zahlen enthält nums. So machen Sie es mit a 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.
  • Schleife durch die nums Liste.
  • Greifen Sie auf jede Nummer zu num, und berechnen Sie seinen Würfel mit dem Potenzierungsoperator: num**3.
  • Hängen Sie schließlich den Kubikwert an die Liste an num_cubes

Hinweis: In Python der Potenzierungsoperator ** wird mit der Syntax verwendet: num**pow-die Nummer num wird zur Macht erhoben 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 von getrennt quadratisch Klammern []– daher müssen Sie die Erklärung zum Listenverständnis beifügen [].
  • <item> in <iterable> bedeutet, dass Sie eine iterierbare Schleife durchlaufen. Jedes Python-Objekt, das Sie durchlaufen und auf einzelne Elemente zugreifen können, wie Listen, Tupel und Zeichenfolgen, sind iterierbar.
  • <expression> ist die Ausgabe, die Sie für alle berechnen möchten <item> der <iterable>.

Und das klingt einfach, ja?

Im Grunde möchte man do etwas für allen Artikel in der Liste (oder jede Iterable), um a zu erhalten neue Liste.

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

Listenverständnis-Syntax
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 verwenden Geekflares Online-Python-IDE diesen Beispielen folgen. Oder Sie könnten sie auf Ihrem lokalen Computer ausführen.

Python List Comprehension Examples

Im vorherigen Abschnitt haben Sie eine neue Liste erstellt num_cubes von nums. 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:

  • <do-this>: Hier musst du jeden würfeln num. Also ersetzen <do-this> mit num**3.
  • <all-items>: Die Schleifenvariable ist num—die einzelnen Nummern in der Liste.
  • <this-list>: 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 Liste authors —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. Diese möchten wir nun in der formatieren Titel Fall und speichern Sie sie in einer neuen Liste namens author_list.

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: First-name Last-name

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

  • Schleife durch die authors Liste und für jeden author In der Liste,
  • rufen Sie Zoe an author.title() um eine Kopie der Zeichenfolge mit Titel 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.

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

Und Sie müssen eine neue Liste erstellen area das beinhaltet die Fläche dieser 4 Rechtecke. Merken, 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 Python machen zip() Funktion.

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

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, 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 durchschleifen 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 in einem Listenverständnis verwenden.

Python List Comprehension with Condition Syntax

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 die zu berechnen <expression> Für alle Artikel möchten Sie dies nur für die Artikel tun, die eine bestimmte Anforderung erfüllen <condition>-wo, condition := True. Und dies führt zu einer vereinfachten Syntax wie gezeigt:

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

▶ Lassen Sie uns damit zu Codebeispielen übergehen.

Python List Comprehension with Condition Examples

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

In Python <char>.isdigit() wirkt auf einen Charakter <char> und kehrt zurück True wenn es eine Ziffer ist (0-9); sonst kehrt es zurück False.

Das folgende Code-Snippet zeigt, wie Sie die Liste aller Ziffern in der Zeichenfolge 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:

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

Nehmen wir ein anderes Beispiel.

# 2. Du hast eine Obstliste.🍊 Und du möchtest eine Liste erstellen starts_with_b das enthält alle Früchte aus der fruits Liste, die mit beginnen b. Sie können die startswith() Methode zum Schreiben der Bedingung.

Die <str>.startswith('char') Rückgabe True wenn beginnt mit 'char'; sonst kehrt es zurück 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 beginnen 'b' der fruits Liste, wie wir erwartet hatten.

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 [ zum in ] um eine neue Liste mit Listenverständnis zu erstellen.
  • Darüber hinaus können Sie die Syntax verwenden [ zum in wenn ] mit dem if bedingte Aussage.

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 von List Comprehension umzuschreiben. Viel Spaß beim Codieren! Bis zum nächsten Tutorial.😄

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

Danke an unsere Sponsoren
Weitere großartige Lektüre zum Thema Entwicklung
Treiben Sie Ihr Geschäft an
Einige der Tools und Dienste, die Ihr Unternehmen beim Wachstum unterstützen.
  • Invicti verwendet das Proof-Based Scanning™, um die identifizierten Schwachstellen automatisch zu verifizieren und innerhalb weniger Stunden umsetzbare Ergebnisse zu generieren.
    Versuchen Sie es mit Invicti
  • Web-Scraping, Wohn-Proxy, Proxy-Manager, Web-Unlocker, Suchmaschinen-Crawler und alles, was Sie zum Sammeln von Webdaten benötigen.
    Versuchen Sie es mit Brightdata
  • Semrush ist eine All-in-One-Lösung für digitales Marketing mit mehr als 50 Tools in den Bereichen SEO, Social Media und Content-Marketing.
    Versuchen Sie es mit Semrush
  • Intruder ist ein Online-Schwachstellenscanner, der Cyber-Sicherheitslücken in Ihrer Infrastruktur findet, um kostspielige Datenschutzverletzungen zu vermeiden.
    MIT DER INTELLIGENTEN SCHADENKALKULATION VON Intruder