Ich habe zwei Listen und möchte sie in eine Liste von tuples
zusammenführen. Ich möchte es mit list comprehension
machen, ich kann es mit map
arbeiten. aber wäre schön zu wissen, wie das Listenverständnis hier funktioniert.
Code hier
Ich habe Kommentare geschrieben, wo es funktioniert und wo nicht. Wie kann ein for-loop
in list comprehension
Überlegen Sie Listenkompressen als Schleifen. Wie können Sie 2 nicht verschachtelte Schleifen schreiben?
Sie können dies mit etwas seltsamen Listenverständnis tun:
%Vor%oder
%Vor% Aber eigentlich ist es besser, zip
zu verwenden.
Der Listen-Verständnis-Weg ist dumm, weil er nur ein Do-Nothing-Listenverständnis um zip
umschließt:
Benutze einfach zip
, dafür ist es da. Es macht keinen Sinn, sich zu zwingen Listenannahmen zu verwenden, wenn sie nichts erreichen.
Edit: Wenn Ihre Frage lautet "Wie bekomme ich zwei For-Schleifen in einem Listenverständnis", sollten Sie das stattdessen fragen. Die Antwort lautet: "Sie können nicht zwei PARALLEL for
Schleifen in einem Listenverständnis erhalten". Jedes Mal, wenn Sie zwei for
-Klauseln in ein Listenverständnis einfügen, werden sie verschachtelt. Das, ein Listenverständnis wie folgt:
Funktioniert wie zwei verschachtelte for
-Schleifen:
Sie können kein Listenverständnis schreiben, das dies tut:
%Vor%. . . und das musst du nicht, weil du stattdessen die Funktion zip
dafür hast.
(Sie können es fälschen, indem Sie eine Lösung wie @Roman Pekar verwenden, aber das macht nicht wirklich zwei for
-Schleifen; es tut nur eins und benutzt die Werte, um in die andere Liste zu gelangen.)
Tags und Links python list list-comprehension tuples