Heim >Backend-Entwicklung >Python-Tutorial >Wie reduziert das Verständnis verschachtelter Listen eine Liste in Python?

Wie reduziert das Verständnis verschachtelter Listen eine Liste in Python?

Linda Hamilton
Linda HamiltonOriginal
2024-12-04 06:07:12300Durchsuche

How Does Nested List Comprehension Flatten a List in Python?

Verschachtelte Listenverständnis: Aufschlüsselung der Syntax

In Python ist das Listenverständnis eine prägnante Möglichkeit, eine neue Liste basierend auf einer vorhandenen zu generieren eins. Wenn es jedoch um das Verständnis verschachtelter Listen geht, kann die Syntax etwas verwirrend werden.

Bedenken Sie den folgenden Ausschnitt:

a = [[1,2],[3,4],[5,6]]
b = [x for xs in a for x in xs]

Dieser Code wandelt die verschachtelte Liste a in eine abgeflachte Liste b um enthält alle Elemente aus a. Um zu verstehen, wie das funktioniert, schlüsseln wir die Syntax auf:

[x for xs in a for x in xs]

Dies ist ein zweistufiges verschachteltes Verständnis. Im Wesentlichen heißt es:

# Loop over the outer list
for xs in a:
    # Loop over the inner list
    for x in xs:
        # Add x to the new list b
        b.append(x)

Mit anderen Worten, es iteriert zuerst über die äußere Liste a, weist jede Unterliste der Variablen xs zu und iteriert dann über die Unterliste und weist jedes Element der Variablen x zu. Für jedes Element x wird es der neuen Liste b hinzugefügt.

Dieser Abrollvorgang folgt der Reihenfolge, in der die Schleifen geschrieben werden: Die äußerste Schleife variiert am langsamsten, gefolgt von den inneren Schleifen. Dies ist das in PEP202 erwähnte „Right One“-Prinzip, das besagt, dass Verständnisse mit dem am schnellsten variierenden Index auf der innersten Schleife geschrieben werden sollten.

Wenn Sie dieses Prinzip verstehen, können Sie selbst komplexe verschachtelte Listenverständnisse sicher entschlüsseln .

Das obige ist der detaillierte Inhalt vonWie reduziert das Verständnis verschachtelter Listen eine Liste in Python?. 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