Nested-List-Comprehension verstehen
Nested-List-Comprehensions bieten ein leistungsstarkes Werkzeug zur präzisen und effizienten Generierung komplexer Datenstrukturen. Um ihr Verhalten zu verstehen, brechen wir ihre Struktur auf.
Allgemeine Syntax:
[exp2([exp1 for x in xSet]) for y in ySet]
Übersetzung in erweiterte Schleifenform:
result = [] for y in ySet: innerResult = [] for x in xSet: innerResult.append(exp1) exp2Result = exp2(innerResult) result.append(exp2Result)
Vereinfachte Fälle:
[exp1 für x in xSet für y in ySet]:
result = [] for x in xSet: for y in ySet: result.append(exp1)
[[exp1 für x in xSet] für y in ySet]:
result = [] for y in ySet: innerResult = [] for x in xSet: innerResult.append(exp1) result.append(innerResult)
Beispiel:
Das folgende verschachtelte Listenverständnis:
[(min([row[i] for row in rows]), max([row[i] for row in rows])) for i in range(len(rows[0]))]
Generiert eine Liste von Tupeln, wobei jedes Tupel die Mindest- und Höchstwerte für eine bestimmte Spalte in allen Zeilen in der Zeilenliste enthält . Die entsprechende erweiterte Schleifenform wäre:
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)
Wichtige Punkte:
Wenn Sie diesen systematischen Ansatz verstehen, können Sie das Konzept auf eine Vielzahl von Variationen des Listenverständnisses anwenden.
Das obige ist der detaillierte Inhalt vonWie funktionieren verschachtelte Listenverständnisse: Struktur und Funktionalität entschlüsseln?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!