Heim  >  Artikel  >  Backend-Entwicklung  >  Wie kann ich Listen in Python mithilfe von Zip und List Comprehension verschachteln?

Wie kann ich Listen in Python mithilfe von Zip und List Comprehension verschachteln?

DDD
DDDOriginal
2024-11-15 21:06:03154Durchsuche

How can I Interleave Lists in Python using Zip and List Comprehension?

Zip- und Listenverständnis für die Verschachtelung von Listen nutzen

Die Verschachtelung von Listen gleicher Länge in Python ist eine häufige Aufgabe. Bei zwei Listen [1,2,3] und [10,20,30] besteht das Ziel darin, sie in [1,10,2,20,3,30] umzuwandeln.

Lösung Verwenden von Zip und List Comprehension:

Ein prägnanter Ansatz zum Verschachteln von Listen besteht darin, die Zip-Funktion und List Comprehension zu verwenden. Der folgende Code erledigt die Aufgabe:

[val for pair in zip(l1, l2) for val in pair]

In diesem Code:

  • zip(l1, l2) iteriert über Elementpaare aus den beiden Eingabelisten.
  • Das äußere Listenverständnis ([val for pair in zip(l1, l2)]) erstellt für jedes Paar eine neue Liste.
  • Das innere Listenverständnis ([val for val in pair]) erstellt eine neue Liste für jedes Wertepaar.

Erweiterung für die Verschachtelung mehrerer Listen:

Wenn mehrere Listen verschachtelt werden müssen (N-Listen), kann dasselbe Konzept verwendet werden kann mit dem *-Operator in zip erweitert werden:

lists = [l1, l2, ...]
[val for tup in zip(*lists) for val in tup]

In diesem Code:

  • zip(*lists) iteriert über Tupel entsprechender Elemente aus allen Eingabelisten.
  • Das äußere Listenverständnis ([val for tup in zip(*lists)]) erstellt eine neue Liste für jedes Tupel.
  • Das innere Listenverständnis ([val for val in tup]) erstellt eine neue Liste für jedes Tupel von Werten.

Das obige ist der detaillierte Inhalt vonWie kann ich Listen in Python mithilfe von Zip und List Comprehension verschachteln?. 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