Einführung in List Comprehensions Python

Mit Hilfe von Comprehensions können Sie schnell und einfach neue Sequenzen mit bereits in Python definierten Sequenzen erstellen. Diese Sequenzen können Listen, Mengen, Wörterbücher usw. sein. Das Listenverständnis ist eine der wertvollen Funktionen von Python. Zusammenfassend bietet List Comprehensions die Möglichkeit, neue Listen basierend auf vorhandenen Listen zu erstellen. Mit anderen Worten, List Comprehensions ist eine einfache Möglichkeit, eine Liste zu erstellen, die auf einigen iterierbaren Werten basiert. Ein Iterable ist hier alles, was zum Schleifen verwendet werden kann. Mit List Comprehensions können Sie eine alternative Syntax zum Erstellen von Listen und anderen sequentiellen Datentypen in Python verwenden. Wir werden uns später ansehen, wie nützlich diese sind. Es gibt 3 Komponenten von List Comprehension:

  • Ausgabeausdruck: Dieser ist optional und kann ignoriert werden.
  • Wiederholbar.
  • Eine Variable, die Mitglieder der Iterable darstellt, wird häufig als Iteratorvariable bezeichnet.

Syntax und Beispiele:

In Python können wir List Comprehensions mithilfe der folgenden Syntax erstellen:

list_variable = (x for x in iterable)

Wie Sie in List Comprehensions sehen können, wird einer Variablen eine Liste zugewiesen. Schauen wir uns zunächst ein Beispiel an. Wir können eine Methode zum Ermitteln des Quadrats einer Zahl mit einer Schleife betrachten:

Code:

numbers = (2, 5, 3, 7) square = () for n in numbers:
square.append(n**2)
print(square)

Ausgabe:

Betrachten wir nun dasselbe, aber verwenden wir List Comprehensions anstelle einer Schleife:

Code:

numbers = (2, 5, 3, 7) square = (n**2 for n in numbers) print(square)

Ausgabe:

Hier sehen Sie, dass eckige Klammern "()" verwendet werden, um anzuzeigen, dass die Ausgabe des Ausdrucks in ihnen eine Liste ist.

Listenverständnisse und Lambda-Funktionen

Sie sollten bedenken, dass Listenverständnis nicht die einzige Möglichkeit ist, Listen zu erstellen. Python verfügt über zahlreiche eingebaute Funktionen und Lambda-Funktionen, die verwendet werden können, z.

Code:

letters = list(map(lambda x: x, 'human'))
print(letters)

Ausgabe:

Obwohl dies in vielen Fällen funktioniert, sind List Comprehensions für jemanden, der nicht der Programmierer des Codes ist, besser lesbar und verständlicher.

Hinzufügen von Bedingungen zu Listenerfassungen

Es steht Ihnen frei, alle innerhalb eines Listenverständnisses erforderlichen Bedingungen zu verwenden, um die vorhandene Liste zu ändern. Schauen wir uns ein Beispiel an, das Bedingungen verwendet:

Code:

numbers_list = ( x for x in range(20) if x % 2 == 0) print(numbers_list)

Ausgabe:

Hier ist ein weiteres Beispiel:

Code:

numbers_list = (x for x in range(100) if x % 2 == 0 if x % 5 == 0) print(numbers_list)

Ausgabe:

Verwenden von verschachtelten Schleifen in Listenumfängen

Bei Bedarf können wir verschachtelte Schleifen in Listenverständnissen verwenden. Sehen wir uns an, wie wir verschachtelte Schleifen auf diese Weise verwenden können, indem wir die Transponierung einer Matrix ermitteln:

Code:

transposedmatrix = () matrix = ((1, 2, 3, 4), (4, 5, 6, 8)) for i in range(len(matrix (0))):
transposedmatrix_row = () for row in matrix:
transposedmatrix_row.append(row(i))
transposedmatrix.append(transposedmatrix_row)
print(transposedmatrix)

Ausgabe:

Beispiele für List Comprehensions Python

Nachfolgend finden Sie Beispiele für List Comprehensions Python:

Beispiel # 1 - Entfernen von Vokalen aus einem gegebenen Satz

Code:

def eg_for(sentence):
vowels = 'aeiou'
filter_list = () for l in sentence:
if l not in vowels:
filter_list.append(l)
return ''.join(filter_list)
def eg_lc(sentence):
vowels = 'aeiou'
return ''.join(( X for X in sentence if X not in vowels))
Now, let's define the matrix, run the program and then check-out the results:
sentence = "hello from the other side"
print ("loop result: " + eg_for(sentence))
print ("LC result: " + eg_lc(sentence))

Ausgabe:

Beispiel # 2 - Kartierung von Ländernamen mit ihren Hauptstädten

Code:

country = ( 'India', 'Italy', 'Japan' ) capital = ( 'Delhi', 'Rome', 'Tokyo' ) output_dict = ()
# Using loop for constructing dictionary
for (key, value) in zip(country, capital):
output_dict(key) = value
print("Output Dictionary using for loop:", output_dict)

Ausgabe:

Vorteile von List Comprehensions Python

Man könnte denken, wenn Loops für fast alles verwendet werden können, was Listenverständnisse tun, warum sollten sie überhaupt verwendet werden? Nun, die Antwort liegt in der Geschwindigkeit und in der Zeit, die benötigt wird, um die Aufgabe zu erledigen, sowie in der Menge an Speicher, die benötigt wird. Wenn ein Listenverständnis erstellt wird, reduzieren wir bereits 3 Codezeilen in eine, und wenn dies erledigt ist, ist der Code weitaus schneller, als wenn ein Listenverständnis vorliegt, ordnet Python zuerst den Speicher für die Liste zu und fügt dann Elemente hinzu. zweifellos ist es auch eine elegantere und raffiniertere Methode, Listen zu erstellen, die auf bereits vorhandenen Listen basieren.

Fazit

Nachdem wir einige Erfahrungen mit Listenverständnissen gesammelt haben, ist es leicht zu verstehen, wie diese es uns ermöglichen, eine Liste in eine neue Liste umzuwandeln. Diese haben eine einfache Syntax, die den Arbeitsaufwand für die Erstellung einer Liste begrenzt. Wenn man bedenkt, dass die Syntax und Struktur von Listenverständnissen im Grunde genommen einer Setbuilder-Notation gleicht, werden diese für Programmierer schnell zur zweiten Natur und stellen sicher, dass der Code nach Übergabe an eine andere Person zur Pflege und Erweiterung leicht verständlich und verständlich ist arbeiten mit.

Empfohlener Artikel

Dies ist eine Anleitung zu List Comprehensions Python. Hier diskutieren wir Listenverständnisse und Lambda-Funktionen zusammen mit Code-Implementierung und Ausgabe. Sie können auch unsere anderen Artikelvorschläge durchgehen, um mehr zu erfahren -

  1. Destruktor in Python mit Vorteilen
  2. Do While-Schleife in Python mit Flowchart
  3. String Array in Python mit Methoden
  4. Was ist AWS Lambda Layers?
  5. PL / SQL-Datentypen
  6. String Array in JavaScript
  7. Verschiedene Arten von SQL-Daten mit Beispielen
  8. Vollständige Anleitung zum Array von Zeichenfolgen