Wie funktioniert das Verständnis verschachtelter Listen in Python?

Mary-Kate Olsen
Freigeben: 2024-10-27 17:59:30
Original
535 Leute haben es durchsucht

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>
Nach dem Login kopieren

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>
Nach dem Login kopieren

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>
Nach dem Login kopieren

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>
Nach dem Login kopieren

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!

Quelle:php.cn
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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!