Heim > Backend-Entwicklung > Python-Tutorial > Listenverständnis in Python verstehen

Listenverständnis in Python verstehen

WBOY
Freigeben: 2024-07-16 16:18:00
Original
1158 Leute haben es durchsucht

Understanding List Comprehensions in Python

Listenverständnisse sind eine leistungsstarke und effiziente Methode zum Erstellen von Listen in Python.

Sie bieten eine übersichtliche und lesbare Möglichkeit, Listen basierend auf vorhandenen Iterables zu erstellen.

In diesem Artikel werde ich die Nuancen des Listenverständnisses, ihre Vorteile gegenüber herkömmlichen Schleifen und verschiedene praktische Anwendungen untersuchen.


Was sind Listenverständnisse?

Listenverständnisse sind eine syntaktisch kompakte Möglichkeit, Listen zu erstellen, indem Schleifen und bedingte Logik in einer einzigen Codezeile kombiniert werden.

Dies führt zu einer lesbareren und aussagekräftigeren Möglichkeit, Listen zu generieren, sodass die Absicht des Codes auf einen Blick leichter zu verstehen ist.


Struktur und Beispiele

Die Grundstruktur eines Listenverständnisses ist wie folgt:

[expression for item in iterable if condition]
Nach dem Login kopieren

Lassen Sie uns die Komponenten dieser Struktur aufschlüsseln:

  • Ausdruck: Dies ist der Wert, der der neuen Liste für jede Iteration hinzugefügt wird.
  • für Element im Iterable: Dies ist das Schleifenkonstrukt, das jedes Element im Iterable durchläuft (z. B. Liste, Tupel, Menge, Wörterbuch oder Generator).
  • if-Bedingung: Dies ist eine optionale bedingte Anweisung, die die Elemente filtert, die in die neue Liste aufgenommen werden sollen.

Beispiele:

Grundlegendes Listenverständnis:

numbers = [1, 2, 3, 4, 5]
squares = [x**2 for x in numbers]
print(squares)  

# Output: [1, 4, 9, 16, 25]
Nach dem Login kopieren

In diesem Beispiel wird Listenverständnis verwendet, um eine neue Liste von Quadraten aus einer vorhandenen Liste von Zahlen zu erstellen.

Listenverständnis mit einer Bedingung:

numbers = [1, 2, 3, 4, 5]
even_squares = [x**2 for x in numbers if x % 2 == 0]
print(even_squares)  

# Output: [4, 16]
Nach dem Login kopieren

In diesem Beispiel werden die Zahlen so gefiltert, dass nur gerade Zahlen enthalten sind, die dann quadriert werden. Dies demonstriert die Verwendung einer if-Bedingung in einem Listenverständnis.


Vorteile von Listenverständnissen gegenüber herkömmlichen Schleifen

Listenverständnisse bieten mehrere Vorteile gegenüber herkömmlichen Schleifen:

  • Kürze: Listenverständnisse sind präziser und einfacher zu lesen als herkömmliche Schleifen, wodurch Ihr Code wartbarer und leichter zu verstehen ist.
  • Leistung: Listenverständnisse sind oft schneller als herkömmliche Schleifen, da sie für die Erstellung von Listen optimiert sind.
  • Lesbarkeit: Die Absicht eines Listenverständnisses ist klarer als die einer herkömmlichen Schleife, sodass andere Ihren Code leichter verstehen können.

Praktische Anwendungen

Listenverständnisse können auf verschiedene Arten zur Manipulation und Verarbeitung von Daten verwendet werden.

Hier sind einige häufige Anwendungsfälle:
Listen filtern:

words = ["apple", "banana", "cherry", "date"]
short_words = [word for word in words if len(word) <= 5]
print(short_words)  

# Output: ['apple', 'date']
Nach dem Login kopieren

In diesem Beispiel wird eine Liste von Wörtern gefiltert, sodass nur diejenigen mit 5 oder weniger Zeichen enthalten sind.

Listen transformieren:

temperatures_celsius = [0, 20, 30, 40]
temperatures_fahrenheit = [(temp * 9/5) + 32 for temp in temperatures_celsius]
print(temperatures_fahrenheit)  

# Output: [32.0, 68.0, 86.0, 104.0]
Nach dem Login kopieren

Dieses Beispiel konvertiert eine Liste von Temperaturen von Celsius in Fahrenheit.

Verschachtelte Listenverständnisse:

matrix = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
flattened = [num for row in matrix for num in row]
print(flattened)  

# Output: [1, 2, 3, 4, 5, 6, 7, 8, 9]
Nach dem Login kopieren

In diesem Beispiel wird eine 2D-Liste (Matrix) mithilfe verschachtelter Listenverständnisse in eine 1D-Liste reduziert.

Listen von Tupeln erstellen:

pairs = [(x, y) for x in range(3) for y in range(3)]
print(pairs) 

# Output: [(0, 0), (0, 1), (0, 2), (1, 0), (1, 1), (1, 2), (2, 0), (2, 1), (2, 2)]
Nach dem Login kopieren

Dieses Beispiel generiert eine Liste aller möglichen Zahlenpaare (Tupel) aus zwei Bereichen.

Duplikate entfernen:

list_with_duplicates = [1, 2, 2, 3, 4, 4, 5]
unique_list = list(set([x for x in list_with_duplicates]))
print(unique_list)  

# Output: [1, 2, 3, 4, 5]
Nach dem Login kopieren

In diesem Beispiel werden Duplikate aus einer Liste entfernt, indem es in einen Satz und wieder zurück in eine Liste umgewandelt wird.


Fortgeschrittenere Themen

Lassen Sie uns nun einige fortgeschrittenere Themen zu Varianten des Listenverständnisses untersuchen.

Generatorausdrücke
Generatorausdrücke ähneln Listenverständnissen, generieren jedoch eine Iterable anstelle einer Liste.

Dies kann bei der Arbeit mit großen Datensätzen speichereffizienter sein, da Elemente im laufenden Betrieb generiert werden und nicht auf einmal im Speicher gespeichert werden.

numbers = [1, 2, 3, 4, 5]
squares_generator = (x**2 for x in numbers)

for square in squares_generator:
    print(square)

# Output
# 1
# 4
# 9
# 16
# 25
Nach dem Login kopieren

Wörterbuch und Mengenverständnis
Python unterstützt auch Wörterbuch- und Mengenverständnisse, mit denen Sie Wörterbücher und Mengen auf prägnante Weise erstellen können, ähnlich wie Listenverständnisse.

# Dictionary comprehension
numbers = [1, 2, 3, 4, 5]
squares_dict = {x: x**2 for x in numbers}
print(squares_dict)  

# Output: {1: 1, 2: 4, 3: 9, 4: 16, 5: 25}



# Set comprehension
list_with_duplicates = [1, 2, 2, 3, 4, 4, 5]
unique_set = {x for x in list_with_duplicates}
print(unique_set)  

# Output: {1, 2, 3, 4, 5}

Nach dem Login kopieren

Abschluss

Listenverständnisse sind ein leistungsstarkes und vielseitiges Tool in Python, mit dem Sie Listen auf prägnante und lesbare Weise erstellen können.

Sie können Ihren Code vereinfachen, die Leistung verbessern und die Manipulation und Verarbeitung von Daten erleichtern.

Durch die Beherrschung des Listenverständnisses und seiner erweiterten Funktionen können Sie effizienteren und saubereren Python-Code schreiben.

Das obige ist der detaillierte Inhalt vonListenverständnis in Python verstehen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:dev.to
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage