Heim >Backend-Entwicklung >Python-Tutorial >Wie funktioniert das Listenverständnis von Python mit einem variablen Präfix?

Wie funktioniert das Listenverständnis von Python mit einem variablen Präfix?

DDD
DDDOriginal
2024-11-22 02:33:13504Durchsuche

How Does Python's List Comprehension with a Variable Prefix Work?

Python-for-in-Schleife mit einem variablen Präfix

In Python können Codefragmente wie die folgenden auftreten:

foo = [x for x in bar if x.occupants > 1]

Dieser Codeausschnitt wirft die Frage auf: Was bedeutet es und wie funktioniert es? Arbeit?

Listenverständnis verstehen

Die fragliche Syntax wird als Listenverständnis bezeichnet. Ein Listenverständnis ist eine prägnante Möglichkeit, eine neue Liste basierend auf einer vorhandenen Liste zu generieren, typischerweise durch Filtern oder Transformieren ihrer Elemente.

Syntaktische Struktur des Listenverständnisses

A Das Listenverständnis folgt dieser allgemeinen syntaktischen Struktur:

[expression for item in iterable if condition]

Erklärung des Gegebenen Beispiel

Im gegebenen Beispiel sind folgende Elemente beteiligt:

  • Ausdruck: x (dies wird ein Element der neuen Liste)
  • Iterierbar: bar (die zu filternde Liste oder transformiert)
  • Bedingung: x.Insassen > 1 (wird zum Filtern der Leiste verwendet)

So funktioniert es

Das Listenverständnis iteriert über jedes Element x in der Listenleiste. Für jedes Element x wird geprüft, ob die Bedingung x.occupants > 1 ist wahr. Wenn die Bedingung wahr ist, wird der Ausdruck x ausgewertet und in die neu erstellte Liste aufgenommen.

Vergleich mit einer For-in-Schleife

Das Listenverständnis ist gleichwertig zur folgenden traditionellen For-In-Schleife:

foo = []
for x in bar:
    if x.occupants > 1:
        foo.append(x)

Das Listenverständnis ist jedoch prägnanter und lesbar.

Alternative Möglichkeit, die Syntax zu verstehen

Alternativ kann das Listenverständnis als Abkürzung zu zwei integrierten Funktionen betrachtet werden:

  • map(function, iterable) wendet die angegebene Funktion auf jedes Element in der Iterable an und gibt eine Liste von zurück Ergebnisse.
  • filter(condition, iterable) filtert das Iterable basierend auf der gegebenen Bedingung und gibt eine Liste von Elementen zurück, die die Bedingung erfüllen.

Im gegebenen Beispiel das Listenverständnis entspricht:

foo = map(lambda x: x, filter(lambda x: x.occupants > 1, bar))

Das obige ist der detaillierte Inhalt vonWie funktioniert das Listenverständnis von Python mit einem variablen Präfix?. 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