Um eine Liste an einer bestimmten Einfügemarke zu erweitern, können Sie das Listen-Slicing verwenden (danke, @florisla):
>>> l =[1,2,3,4,5]>>> l[2:2]=['a','b','c']>>> l
[1,2,'a','b','c',3,4,5]
Das Aufteilen von Listen ist sehr flexibel, da es ermöglicht, einen Bereich von Einträgen in einer Liste durch einen Bereich von Einträgen aus einer anderen Liste zu ersetzen:
>>> l =[1,2,3,4,5]>>> l[2:4]=['a','b','c'][1:3]>>> l
[1,2,'b','c',5]
Wenn Sie auf eine bestimmte Einfügemarke 'erweitern' möchten, können Sie die List-Slicing-Syntax verwenden (siehe stackoverflow.com/a/7376026/1075152 )
florisla
5
@ florislas Kommentar sollte die akzeptierte Antwort sein. Dies ist die einzige Möglichkeit, eine Liste an einer beliebigen Stelle (nicht nur am Ende) in eine andere Liste einzufügen.
Weber
1
@weaver Während es die einzige Lösung zu tun , dass (erstrecken sich in einem bestimmten Index), die nicht die ursprüngliche Frage war.
Florida
@florisla Das ist Pedanterie.
Weber
31
foo =[1,2,3]
bar =[4,5,6]
foo.append(bar)-->[1,2,3,[4,5,6]]
foo.extend(bar)-->[1,2,3,4,5,6]
Dies sollte ein Kommentar zu der akzeptierten Antwort sein, da diese erwähnt x + yund x += ygenau dasselbe ist, aber vorhanden ist.
HTNW
Ich habe nicht den Ruf, das zu tun, aber wenn es jemand anderes kann!
user3707850
2
Wenn Sie die Elemente in einer Liste (Liste2) am Ende einer anderen Liste (Liste) hinzufügen möchten, können Sie die Methode zum Erweitern der Liste verwenden
list =[1,2,3]
list2 =[4,5,6]
list.extend(list2)print list
[1,2,3,4,5,6]
Oder wenn Sie zwei Listen verketten möchten, können Sie + sign verwenden
Wenn wir dies nur tun x.append(y), wird y in x referenziert, sodass sich alle an y vorgenommenen Änderungen auch auf das angehängte x auswirken. Wenn wir also nur Elemente einfügen müssen, sollten wir Folgendes tun:
listA.insert(pos, x) for x in listB[::-1]
?Antworten:
Meinst du
append
?Oder zusammenführen?
quelle
x.extend(y)
ist vorhanden,x+y
gibt neue Liste zurück. Undx += y
, was hier nicht erwähnt wurde, ähnelt dem Umfang.Die Frage macht nicht klar, was genau Sie erreichen wollen.
List hat die
append
Methode, die ihr Argument an die Liste anfügt:Es gibt auch die
extend
Methode, mit der Elemente aus der Liste, die Sie übergeben, als Argument angehängt werden :Und natürlich gibt es die
insert
Methode, die sich ähnlich verhält,append
aber die Angabe der Einfügemarke ermöglicht:Um eine Liste an einer bestimmten Einfügemarke zu erweitern, können Sie das Listen-Slicing verwenden (danke, @florisla):
Das Aufteilen von Listen ist sehr flexibel, da es ermöglicht, einen Bereich von Einträgen in einer Liste durch einen Bereich von Einträgen aus einer anderen Liste zu ersetzen:
quelle
http://docs.python.org/tutorial/datastructures.html
quelle
[1,2,4,5,6,3]
Sie können auch einfach tun ...
quelle
x + y
undx += y
genau dasselbe ist, aber vorhanden ist.Wenn Sie die Elemente in einer Liste (Liste2) am Ende einer anderen Liste (Liste) hinzufügen möchten, können Sie die Methode zum Erweitern der Liste verwenden
Oder wenn Sie zwei Listen verketten möchten, können Sie + sign verwenden
quelle
Wenn wir dies nur tun
x.append(y)
, wird y in x referenziert, sodass sich alle an y vorgenommenen Änderungen auch auf das angehängte x auswirken. Wenn wir also nur Elemente einfügen müssen, sollten wir Folgendes tun:x = [1,2,3] y = [4,5,6] x.append(y[:])
quelle