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 Nummernum
wird zur Macht erhobenpow
.
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.

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ürfelnnum
. Also ersetzen<do-this>
mitnum**3
.<all-items>
: Die Schleifenvariable istnum
—die einzelnen Nummern in der Liste.<this-list>
: Die vorhandene Liste, die wir haben, istnums
.- 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 jedenauthor
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 Syntaxzip(*iterables)
. Es gibt dann einen Iterator von Tupeln zurück, wobei das Tupeli
enthält das Elementi
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.

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:

▶ 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ückTrue
wenn es eine Ziffer ist (0-9); sonst kehrt es zurückFalse
.
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 handeltisdigit()
Methode, und - hinzufügen
char
zur neuen Listedigits
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ückgabeTrue
wenn beginnt mit 'char'; sonst kehrt es zurückFalse
.
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.