Duplikate in der Liste erstellen

8

Ich habe

%Vor%

und

%Vor%

Ich möchte eine Liste des Typs von:

erhalten %Vor%

Das habe ich bisher:

%Vor%     
Ekaterina 23.01.2017, 16:31
quelle

9 Antworten

10

Hier ist eine Möglichkeit, dies zu tun mit zip , String-Multiplikation und einem Listenverständnis :

%Vor%

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.

    
Moses Koledoye 23.01.2017, 16:35
quelle
5

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.

    
Mike Müller 23.01.2017 16:37
quelle
4

Als allgemeiner Ansatz für jedes Objekt (nicht nur für einen String) können Sie itertools.repeat() innerhalb eines Generatorausdrucks verwenden:

%Vor%

Demo:

%Vor%

Hier ist ein Benchmark für 3 Hauptansätze. Beachten Sie, dass der letzte Onley für Strings funktioniert:

%Vor%     
Kasramvd 23.01.2017 16:38
quelle
2

Sie können numpy.repeat() als weitere Option verwenden:

%Vor%     
Psidom 23.01.2017 16:37
quelle
1

Eine andere Möglichkeit, dies mit einer Schleife zu tun, wäre:

%Vor%

Jetzt haben wir:

%Vor%     
Christopher Shroba 23.01.2017 16:38
quelle
1

Wenn Sie sich nicht sicher sind, wie List Comprehensions funktionieren,

%Vor%     
hfz 23.01.2017 16:38
quelle
1

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 .

    
Spherical Cowboy 23.01.2017 16:49
quelle
1

Das ist meine Lösung, nur um eine andere hinzuzufügen.

%Vor%     
alec_djinn 23.01.2017 17:02
quelle
0

Unter der Annahme, dass beide Listen die gleiche Länge haben und die zweite immer eine Liste von Zahlen ist, ist hier eine Lösung ohne zip oder irgendwelche Importe:

%Vor%     
Nick A 23.01.2017 16:40
quelle

Tags und Links