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
num
und 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 Zahlnum
wird mit der Potenzpow
.
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.

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ürfelnum
. Also ersetzen<do-this>
mitnum**3
.<all-items>
: Die Schleifenvariable istnum
-die einzelnen Nummern in der Liste.<this-list>
: Die bestehende Liste lautetnums
.- 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 jedeauthor
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 Syntaxzip(*iterables)
. Sie gibt dann einen Iterator von Tupeln zurück, wobei das Tupeli
enthält das Elementi
aus jeder der Iterablen.
Das folgende Bild beschreibt dies im Detail. Sie haben 4 Werte in l_arr
und b_arr
so 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.

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:

▶ 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ückTrue
wenn es sich um eine Ziffer (0-9) handelt; andernfalls wirdFalse
.
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 dieisdigit()
Methode, und - hinzufügen.
char
zur neuen Listedigits
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 wirdFalse
.
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.