Hier ist eine Möglichkeit, dies zu tun mit zip
, String-Multiplikation und einem Listenverständnis :
Achten Sie bei der Verwendung von Python auf die Auswahl der Namen. Ein Name wie list
macht die eingebaute Listenfunktion unbrauchbar.
Wenn die Elemente in lst
keine Zeichenfolgen sind, können Sie einfach ein verschachteltes Verständnis für range
verwenden, um die Elemente in der Liste zu duplizieren.
Ein geschachteltes Listenverständnis funktioniert:
%Vor% Der "sub-loop" for _ in range(number)
wiederholt den Wert number
mal.
Hier kann L
jedes Objekt enthalten, nicht nur Strings.
Beispiel:
%Vor%aber dies flacht die Unterliste ab:
%Vor%nicht genau das gewünschte Ergebnis.
Als allgemeiner Ansatz für jedes Objekt (nicht nur für einen String) können Sie itertools.repeat()
innerhalb eines Generatorausdrucks verwenden:
Demo:
%Vor%Hier ist ein Benchmark für 3 Hauptansätze. Beachten Sie, dass der letzte Onley für Strings funktioniert:
%Vor%Eine andere Möglichkeit, dies mit einer Schleife zu tun, wäre:
%Vor%Jetzt haben wir:
%Vor%Dies funktioniert unabhängig davon, ob a, b, c und d Variablen oder Zeichenfolgen sind:
%Vor%Sie können die if-Anweisung auskommentieren (und die darunter liegende Zeile einrücken), um zu prüfen, ob die Listen die gleiche Länge haben, andernfalls enthält new_lst nur so viele Elemente wie die kürzere Liste.
Dies , dies und Lesen Sie den Dokumentationsabschnitt zu den geschachtelten Listen .