Heim  >  Artikel  >  Backend-Entwicklung  >  Wie funktioniert das Verständnis verschachtelter Listen in Python?

Wie funktioniert das Verständnis verschachtelter Listen in Python?

Mary-Kate Olsen
Mary-Kate OlsenOriginal
2024-10-27 17:59:30527Durchsuche

How Does Nested List Comprehension Work in Python?

Das Verständnis verschachtelter Listen verstehen

Das Verständnis verschachtelter Listen ist eine leistungsstarke Funktion in Python, mit der Sie mühelos komplexe Datenstrukturen erstellen können. Um zu verstehen, wie es funktioniert, betrachten wir eine vereinfachte Version:

<code class="python">[(min([row[i] for row in rows]), 
max([row[i] for row in rows])) 
for i in range(len(rows[0]))]</code>

Dieser Ausdruck entspricht der folgenden for-Schleife:

<code class="python">result=[]
for i in range(len(rows[0])):
  innerResult=[]
  for row in rows:
    innerResult.append(row[i])
  innerResult2=[]
  for row in rows:
    innerResult2.append(row[i])
  tuple=(min(innerResult), max(innerResult2))
  result.append(tuple)</code>

Der Schlüssel zum Verständnis des Verständnisses verschachtelter Listen ist die Verschachtelung der for-Schleifen. Die äußere Schleife iteriert über die Elemente von rows[0], während die innere Schleife zeilenweise über die Zeilen iteriert.

Im obigen Ausdruck ist die erste for-Schleife für die Erstellung der äußeren Struktur der Liste verantwortlich. Für jede Iteration wird ein neues Tupel erstellt. Währenddessen erstellt die zweite for-Schleife die innere Struktur des Tupels. Für jede Zeile in Zeilen wird das Element am Index i extrahiert und zur inneren Ergebnisliste hinzugefügt.

Um dieses Konzept zu verallgemeinern, kann jedes verschachtelte Listenverständnis der Form

<code class="python">[exp2([exp1 for x in xSet]) for y in ySet]</code>

Kann in die for-Schleifenstruktur übersetzt werden:

<code class="python">result=[]
for y in ySet:
  innerResult =[]
  for x in xSet:
    innerResult.append(exp1)
  exp2Result = exp2(innerResult)
  result.append(exp2Result)</code>

Für einfachere Fälle ist die Äquivalenz einfach:

  • [exp1 für x in xSet für y in ySet]: Äquivalent zu for x in xSet: für y in ySet: result.append(exp1)
  • [[exp1 für x in xSet] für y in ySet]: Äquivalent zu für y in ySet: innerResult=[]; für x in xSet: innerResult.append(exp1); result.append(innerResult)

Das obige ist der detaillierte Inhalt vonWie funktioniert das Verständnis verschachtelter Listen 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