Dies scheint etwas zu sein, für das Python eine Abkürzung haben würde. Ich möchte ein Element N-mal an eine Liste anhängen und dabei Folgendes tun:
l = []
x = 0
for i in range(100):
l.append(x)
Es scheint mir, dass es dafür eine "optimierte" Methode geben sollte, so etwas wie:
l.append_multiple(x, 100)
Gibt es?
l.extend([x] * 100)
Am Ende ging es mit, da es am besten zu meiner Situation passte. Amber erhält die Antwort als die umfassendste. Vielen Dank!Antworten:
Für unveränderliche Datentypen:
Für Werte, die als Referenz gespeichert sind und die Sie möglicherweise später ändern möchten (z. B. Unterlisten oder Diktate):
(Der Grund, warum die erste Methode nur für konstante Werte wie Ints oder Strings eine gute Idee ist, liegt darin, dass bei Verwendung von nur eine flache Kopie ausgeführt wird
<list>*<number>
Syntax Wenn Sie also so etwas tun[{}]*100
, erhalten Sie 100 Referenzen zum gleichen Wörterbuch - also würde das Ändern eines von ihnen alle ändern. Da Ints und Strings unveränderlich sind, ist dies für sie kein Problem.)Wenn Sie einer vorhandenen Liste hinzufügen möchten, können Sie die
extend()
Methode dieser Liste verwenden (in Verbindung mit der Erstellung einer Liste von Dingen, die mithilfe der oben genannten Techniken hinzugefügt werden sollen):quelle
a.extend(b*n)
won
Sie Elemente in bVerwenden Sie Erweitern, um am Ende ein Listenverständnis hinzuzufügen.
Weitere Informationen finden Sie in den Python-Dokumenten .
quelle
Itertools wiederholen kombiniert mit Listenerweiterung.
quelle
Sie können dies mit einem Listenverständnis tun
quelle
Ich musste einen anderen Weg für einen Auftrag gehen, aber das ist es, was ich am Ende hatte.
quelle
quelle