Heim >Backend-Entwicklung >Python-Tutorial >Wie kann ich verschachtelte Listenverständnisse in entsprechende for-Schleifen in Python übersetzen?

Wie kann ich verschachtelte Listenverständnisse in entsprechende for-Schleifen in Python übersetzen?

DDD
DDDOriginal
2024-10-29 07:35:02343Durchsuche

How can I translate nested list comprehensions into equivalent for loops in Python?

Verschachtelte Listenverständnisse verstehen

Verschachtelte Listenverständnisse bieten eine prägnante und leistungsstarke Möglichkeit, Datenstrukturen in Python zu transformieren und zu kombinieren. Die grundlegende Syntax besteht darin, mehrere for-Ausdrücke in eckige Klammern zu setzen, wobei jeder for-Ausdruck in einem eigenen Satz von Formeln eingeschlossen ist.

Übersetzen in äquivalente For-Schleifen

To Um verschachtelte Listenverständnisse zu verstehen, ist es hilfreich, sie in die entsprechende for-Schleifenform zu übersetzen. Betrachten Sie das Beispiel:

[(min([row[i] for row in rows]), max([row[i] for row in rows])) for i in range(len(rows[0]))]

Dies kann wie folgt als for-Schleife ausgedrückt werden:

result = []
for i in range(len(rows[0])):
  inner_result = []
  for row in rows:
    inner_result.append(row[i])
  inner_result2 = []
  for row in rows:
    inner_result2.append(row[i])
  tuple = (min(inner_result), max(inner_result2))
  result.append(tuple)

Verallgemeinerung des Musters

Das Obige Das Beispiel folgt einem allgemeinen Muster:

[exp2([exp1 for x in xSet]) for y in ySet]

Äquivalent zur Schleife:

result = []
for y in ySet:
  inner_result = []
  for x in xSet:
    inner_result.append(exp1)
  exp2_result = exp2(inner_result)
  result.append(exp2_result)

Andere Beispiele

  • [exp1 für x in xSet für y in ySet] entspricht result = []; für x in xSet: für y in ySet: result.append(exp1)
  • [[exp1 für x in xSet] für y in ySet] ist äquivalent zu result = []; für y in ySet: inner_result = []; für x in xSet: inner_result.append(exp1); result.append(inner_result)

Das obige ist der detaillierte Inhalt vonWie kann ich verschachtelte Listenverständnisse in entsprechende for-Schleifen in Python übersetzen?. 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