So verwenden Sie das Listenverständnis in Python

So verwenden Sie das Listenverständnis in Python

Die rechtzeitige Verwendung des Listenverständnisses in Python kann Ihnen iterative Listenoperationen erleichtern. Es ist nicht nur eine einzelne Zeile, sondern auch besser lesbar und wird effizienter ausgeführt.





Sie könnten sich jedoch aufregen, wenn Sie nicht wissen, wie man es benutzt. Es kann sogar noch frustrierender sein, wenn Sie nicht wissen, wo Sie es in Ihrem Code anwenden sollen. Hier zeigen wir Ihnen anhand einiger Beispiele aus der Praxis, wie Sie das Listenverständnis in Python verwenden.





Was ist Listenverständnis in Python und wie funktioniert es?

Das Erstellen einer Liste von Elementen mit Python ist einfach. Die Aufgabe kann jedoch etwas mühsam werden, wenn Sie eine Liste von Werten oder Elementen aus mathematischen oder String-Operationen generieren müssen. Das ist, wenn die Verwendung des Listenverständnisses nützlich sein kann.





Ein Vorteil des Listenverständnisses besteht darin, dass Sie mehrere Vorgänge in einer einzigen Liste ausführen können.

So widmen Sie mehr Video-RAM Windows 10

Im Gegensatz dazu erstellt es neue Elemente und hängt sie an eine leere Liste an, die es automatisch deklariert. Anstatt also manuell eine leere Liste zu erstellen und mit a . anzuhängen zum loop können Sie dies mit Pythons Listenverständnis automatisch tun, ohne dass Sie sich darum kümmern müssen, wie die neue Liste durchkommt.



Der Begriff 'Listenverständnis' kommt daher, dass alle Operationen in einer Python-Liste einer benannten Variablen zugeordnet sind. Wie bereits erwähnt, können Sie damit bestimmte Operationen in einer einzigen Codezeile ausführen. Anschließend wird die Ausgabe an eine neue Liste angehängt.

Letztlich können Sie die Ausgabe eines Listenverständnisses auch für andere Zwecke verwenden. Das liegt daran, dass Ausdrücke in separaten Variablen gestapelt werden. So können Sie später darauf zurückgreifen.





Du könntest zum Beispiel sein Scraping einer Website mit BeautifulSoup . Angenommen, Sie möchten die Namen aller Artikel und deren Preise von der Website abrufen.

Sie entscheiden sich dann, die geschabten Daten in eine CSV- oder Excel-Datei zu speichern. Die ideale Vorgehensweise besteht darin, die Namen aller Artikel und deren Preise abzukratzen und beide in separate Spalten zu setzen. In diesem Fall stellt die Verwendung eines Listenverständnisses jedoch sicher, dass Sie die erfassten Daten in dedizierten Variablen haben. Sie können solche Variablen später in einen Python-DataFrame konvertieren.





Sehen Sie sich das folgende Beispiel an:

Products = [i.text for i in bs.find_all('name tags')]
Price = [i.text for i in bs.find_all('price tags')]

Sobald Sie die Schleifenvariablen erhalten haben, können Sie sie mit Pythons Pandas in separate Spalten in einem DataFrame einfügen.

So erstellen und verwenden Sie ein Listenverständnis in Python

Die zum loop ist ein wesentlicher Iterator in einem Listenverständnis. Im Allgemeinen nimmt ein Listenverständnis in Python dieses Format an:

ComprehensionVariable = [expression for items in list]

Drucken Verständnisvariable gibt das Ergebnis des obigen Codes als Liste aus.

Achten Sie jedoch darauf, ein Listenverständnis nicht mit einem offenen zu verwechseln zum Schleife.

Lass uns zum Beispiel eine offene for-Schleife verwenden um eine Liste aller Vielfachen von drei zwischen 1 und 30 zu erhalten:

myList = []
for i in range(1, 11):
myList.append(i * 3)
print(myList)
Output: [3, 6, 9, 12, 15, 18, 21, 24, 27, 30]

Um die beiden zu vergleichen, machen wir dasselbe mit einem Listenverständnis:

multiplesOf3 = [i*3 for i in range(1, 11)]
print(multiplesOf3)
Output = [3, 6, 9, 12, 15, 18, 21, 24, 27, 30]

Sie können ein Listenverständnis auch mit bedingten Anweisungen verwenden. Der folgende Beispielcode gibt alle ungeraden Zahlen zwischen 1 und 10 aus:

oddNumbers = [i for i in range(1, 11) if not i%2==2]
print(oddNumbers)
Output = [1, 3, 5, 7, 9]

Lassen Sie uns nun auch den obigen Code mit einem open . neu schreiben zum Schleife:

myList = []
for i in range(1, 11):
if not i%2 == 0:
myList.append(i)
print(myList)
Output: [1, 3, 5, 7, 9]

Verwandt: So hängen Sie eine Liste in Python an

Ein Listenverständnis akzeptiert auch verschachtelte if-Anweisungen:

oddNumbers = [i for i in range(1, 11) if not i%2==0 if i<4]
print(oddNumbers)
Output: [1, 3]

Es braucht auch ein verschachteltes zum Schleife:

someNums = [[i*2 for i in range(1, 3)] for _ in range(4)]
print(someNums)

Sie können auch ein einfaches verschachteltes zum Schleife in einem Listenverständnis:

someNums = [i*2 for i in range(1, 3) for k in range(4)]

Sie können Strings auch mit Python-Listenverständnis manipulieren. Schauen wir uns unten ein Wortzähler-Verständnis an:

word = ['This is a python list comprehension tutorial']
wordCounter = [i.count(' ') + 1 for i in word]
print(wordCounter)
Output: 7

Ein Listenverständnis kann auch eine Funktion akzeptieren, die eine bestimmte Operation ausführt. Lassen Sie uns eine Multiplikatorfunktion einfügen, die gerade Zahlen in einem Listenverständnis erhält, um zu sehen, wie das funktioniert:

Numbers = [4, 7, 8, 15, 17, 10]
def multiplier(n):
multiple = n*2
return multiple
multipleEven = [multiplier(i) for i in Numbers if i%2==0]
print(multipleEven)
Output: [8, 16, 20]

Sie können den obigen Code immer noch in einer einzigen Funktion schreiben, ohne Verständnis zu verwenden. Ein Listenverständnis ist jedoch nützlich, wenn Sie mehrere Iterationen durchführen und jede davon in separate Variablen platzieren müssen.

Sie können beispielsweise einen anderen Vorgang auf n und haben eine dedizierte Variable dafür. Lassen Sie uns das obige Verständnis ändern, um gerade Zahlen aus ungeraden zu generieren:

multipleEvenFromOdds = [multiplier(i) for i in Numbers if not i%2==0]
print(multipleEvenFromOdds)
Output: [14, 30, 34]

Wörterbuch- und Satzverständnis

Neben einem Listenverständnis bietet Python auch ein Wörterbuch und eine Set-Comprehension-Funktionalität.

Sehen Sie sich das Beispielwörterbuchverständnis unten an, um zu sehen, wie es funktioniert:

corresponding = {i: i*2 for i in range(10) if not i%2==0}
print(corr)
Output: {1: 2, 3: 6, 5: 10, 7: 14, 9: 18}

Der obige Code durchläuft die Liste der Zahlen zwischen 1 und 9 und macht sie zu den Schlüsseln. Es weist Python dann an, jeden Schlüssel mit zwei zu multiplizieren. Schließlich präsentiert es die Ergebnisse dieser Operation als die entsprechenden Werte für jeden Schlüssel im resultierenden Array.

Verwandt: Wie Arrays und Listen in Python funktionieren

Ein Mengenverständnis ähnelt ein wenig einem Listenverständnis. Hier ist ein Beispiel für ein Set-Verständnis:

Hardwarebeschleunigung Chrome ein oder aus
numbers = {i**(2) for i in range(10) if i%4==0}
print(numbers)
Output: {0, 16, 64}

Im Gegensatz zum Listenverständnis entfernt das Mengenverständnis jedoch Duplikate:

nums = {i for i in range(20) if i%2==1 for k in range(10) if k%2==1}
print(nums)
Output: {1, 3, 5, 7, 9, 11, 13, 15, 17, 19}

Sie können den obigen Code mithilfe eines Listenverständnisses ausprobieren, um zu sehen, wie sie sich unterscheiden.

Können Sie das Listenverständnis jedes Mal verwenden?

Wir haben uns verschiedene Beispiele für das Listenverständnis angeschaut und wo Sie diese verwenden können. Wie bei jeder anderen Python-Methode hängt der Anwendungsfall eines Listenverständnisses jedoch von dem spezifischen Problem ab, das Sie lösen möchten. Daher sollten Sie es nur verwenden, wenn es für das spezifische Problem, das Sie lösen möchten, ideal ist.

Einer der Zwecke des Listenverständnisses besteht darin, Ihren Code zu vereinfachen und lesbarer zu machen. Vermeiden Sie daher Komplexität im Umgang damit. Zum Beispiel kann ein langes Python-Verständnis kompliziert zu lesen sein. Das verfehlt seinen Zweck.

Teilen Teilen Tweet Email Wie man Python-Listenverständnisse verwendet (und wann man sie nicht verwendet)

Hier finden Sie alles, was Sie über die Verwendung dieser erstaunlichen Funktion von Python wissen müssen, die Ihre Produktivität und Codelesbarkeit über Nacht steigern wird.

Weiter lesen
Verwandte Themen
  • Programmierung
  • Python
Über den Autor Idisou Omisola(94 veröffentlichte Artikel)

Idowu hat eine Leidenschaft für alles, was smarte Technologien und Produktivität ist. In seiner Freizeit spielt er mit Programmieren und wechselt bei Langeweile aufs Schachbrett, aber er liebt es auch, ab und zu aus der Routine auszubrechen. Seine Leidenschaft, Menschen den Weg in die moderne Technologie zu weisen, motiviert ihn, mehr zu schreiben.

Mehr von Idowu Omisola

Abonniere unseren Newsletter

Abonnieren Sie unseren Newsletter für technische Tipps, Rezensionen, kostenlose E-Books und exklusive Angebote!

Klicken Sie hier, um sich zu abonnieren