Heim  >  Artikel  >  Backend-Entwicklung  >  Eine elegante und einfache Möglichkeit, Python-Listen zu verwenden: Listenverständnis

Eine elegante und einfache Möglichkeit, Python-Listen zu verwenden: Listenverständnis

Mary-Kate Olsen
Mary-Kate OlsenOriginal
2024-09-28 08:10:02581Durchsuche

An elegant and simple way to use Python Lists: List Comprehensions

Sie denken vielleicht, dass Listenverständnis ein fortgeschrittenes Konzept ist. In schwierigen Situationen kann es Ihren Code jedoch mit nur einer Zeile vereinfachen. Es ist Zeit zu verstehen, wie es funktioniert. Ich werde es auf Anfängerniveau anhand von Beispielen erklären.

Was genau ist Listenverständnis?

Man sieht oft die Notation l2 = [x 1 für x in l]. Es soll das Gleiche sein:

l2 = []
for x in l:
    x = x + 1
l2.append(x)

Wenn wir in beiden Fällen mit l = [10, 100, 1000] beginnen, ist l2:

[11, 101, 1001]

Die erste Syntax nennen wir Listenverständnis.
Möglicherweise bevorzugen Sie die übliche for-Schleife, aber ich verspreche Ihnen, dass Sie am Ende dieses Artikels sicher sein werden, Listenverständnis zu verwenden!

Außerdem schauen wir uns die detaillierte offizielle Definition aus der Dokumentation https://docs.python.org/3/tutorial/datastructures.html#list-comprehensions

an

Listenverständnisse bieten eine prägnante Möglichkeit, Listen zu erstellen. Übliche Anwendungen bestehen darin, neue Listen zu erstellen, in denen jedes Element das Ergebnis einiger Operationen ist, die auf jedes Mitglied einer anderen Sequenz angewendet werden oder iterierbar sind, oder eine Untersequenz dieser Elemente zu erstellen, die eine bestimmte Bedingung erfüllen.

Lassen Sie es uns genauer aufschlüsseln. Das Listenverständnis ist lediglich eine andere Art, Code zu schreiben, der kürzer und einfacher ist, eine neue Liste zu erstellen. Das Ergebnis des Listenverständnisses ist eine Liste, weshalb wir es einer Liste zuordnen.
Sehen wir uns den zweiten Teil der Definition an, in dem gängige Beispiele erläutert werden. Dies sollte anhand konkreter Beispiele erfolgen.
1.

fast_foods = ["Burger", "Pizza", "Tacos", "Fried Chicken", "Hot Dog"]
uppercase_fast_foods = [food.upper() for food in fast_foods]

Danach lautet „uppercase_fast_foods“ wie folgt:

['BURGER', 'PIZZA', 'TACOS', 'FRIED CHICKEN', 'HOT DOG']

Wir verwenden die Funktion „upper()“, um jedes Lebensmittel in unserer Liste in Großbuchstaben umzuwandeln. Daher werden jetzt alle Elemente in Großbuchstaben geschrieben. Auf diese Weise erstellen wir „neue Listen, in denen jedes Element das Ergebnis einiger Operationen ist, die auf jedes Mitglied einer anderen Sequenz angewendet oder iterierbar sind.“
2.

fast_foods = ["Burger", "Pizza", "Tacos", "Fried Chicken", "Hot Dog"]
foods_with_space = [food for food in fast_foods if " " in food]

Danach lautet „foods_with_space“:

['Fried Chicken', 'Hot Dog']

Die obige Codezeile ruft die Elemente aus der Liste ab, die ein Leerzeichen enthalten. Auf diese Weise erstellen wir „neue Listen, in denen jedes Element das Ergebnis einiger Operationen ist, die auf jedes Mitglied einer anderen Sequenz angewendet oder iterierbar sind.“

Beispiele für das Listenverständnis

Ich habe Listenverständnisse bei vielen Problemen verwendet, denn wann immer ich auf zu viele For-Schleifen stieß, dachte ich: „Kein Problem, ich vereinfache sie einfach.“ Es stellt sich heraus, dass es die gleiche Logik ist, nur sauberer! ?
Hier sind ohne weiteres einige der relevantesten Beispiele, die mir eingefallen sind:
1. Ändern Sie jedes Element der Liste

foods = ["Burger", "Fries", "Fried Chicken", "Hot Dog", "Pizza"]
foods_with_version = [food + ' - 2024' for food in foods]
print(foods_with_version)

Ausgabe:

['Burger - 2024', 'Fries - 2024', 'Fried Chicken - 2024', 'Hot Dog - 2024', 'Pizza - 2024']

In diesem Beispiel nehmen wir eine Liste von Lebensmitteln und fügen zu jedem „- 2024“ hinzu. Wir nutzen das Listenverständnis, um schnell eine neue Liste mit diesen aktualisierten Namen zu erstellen.
2. Erstellen Sie eine Unterliste aus einer Liste basierend auf einer Bedingung

foods = ["Burger", "Fried Chicken", "Hot Dog", "Fries", "Pizza"]
long_foods = [food for food in foods if len(food) > 7]
print(long_foods)

Ausgabe:

['Fried Chicken']`

In diesem Beispiel erstellen wir eine Liste mit Lebensmitteln und filtern diejenigen heraus, die mehr als 7 Zeichen haben. Um dies zu erreichen, verwenden wir Listenverständnis mit einer Bedingung.
3. Verwenden Sie die Bereichsfunktion mit Listenverständnis, um eine Liste zu erstellen

x = [i for i in range(10, 20, 2)]
print(x)

Ausgabe:

[10, 12, 14, 16, 18]

In diesem Beispiel erstellen wir eine Liste mit Zahlen im Bereich von 10 bis 18 mithilfe des Listenverständnisses mit range().
4. Listenverständnis auf eine Zeichenfolge anwenden

input_string = "hello world"
marked_vowels = ['*' if char in 'aeiouAEIOU' else char for char in input_string]
print(marked_vowels)

Ausgabe:

['h', '*', 'l', 'l', '*', ' ', 'w', 'o', 'r', 'l', 'd']

In diesem letzten Beispiel nehmen wir eine Zeichenfolge und markieren ihre Vokale mit einem Sternchen (*). Wir verwenden Listenverständnis, um eine neue Liste basierend auf der ursprünglichen Zeichenfolge zu erstellen.

Abschluss

In diesem Artikel habe ich alle grundlegenden Erkenntnisse zum Listenverständnis behandelt, von der Definition bis hin zu verschiedenen Beispielen, die sie weiter erläutern. Ich hoffe, dass alles klar ist und Sie sich von nun an motivierter fühlen, Listenverständnisse in Ihren Python-Code zu integrieren!

Das obige ist der detaillierte Inhalt vonEine elegante und einfache Möglichkeit, Python-Listen zu verwenden: Listenverständnis. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
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
Vorheriger Artikel:Lächeln-Detektor und FotoaufnahmeNächster Artikel:Keiner