Komentarz @ florisla powinien być zaakceptowaną odpowiedzią. Jest to jedyny sposób na wstawienie listy do innej listy w dowolnym miejscu (nie tylko na końcu).
tkacz
1
@weaver Choć jest to jedyne rozwiązanie, aby zrobić to (rozciągają się na indeksie szczególnego), który nie był oryginalny pytanie.
florisla
@florisla To pedanteria.
tkacz
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]
Jeśli po prostu to zrobimy x.append(y), y zostanie odniesione do x, tak że wszelkie zmiany dokonane w y wpłyną również na dołączony x. Więc jeśli musimy wstawić tylko elementy, powinniśmy wykonać następujące czynności:
listA.insert(pos, x) for x in listB[::-1]
?Odpowiedzi:
Czy masz na myśli
append
?Lub połączyć?
źródło
x.extend(y)
jest na miejscu,x+y
zwraca nową listę. Ix += y
, o czym tu nie wspomniano, jest podobny do rozszerzenia.Pytanie nie wyjaśnia, co dokładnie chcesz osiągnąć.
Lista ma
append
metodę, która dołącza swój argument do listy:Istnieje również
extend
metoda, która dołącza elementy z listy, którą podajesz jako argument:Oczywiście istnieje
insert
metoda, która działa podobnie,append
ale pozwala określić punkt wstawienia:Aby rozszerzyć listę w określonym punkcie wstawiania, możesz użyć podziału na listy (dzięki, @florisla):
Podział listy jest dość elastyczny, ponieważ pozwala zastąpić zakres wpisów na liście zakresem wpisów z innej listy:
źródło
http://docs.python.org/tutorial/datastructures.html
źródło
[1,2,4,5,6,3]
Możesz też po prostu zrobić ...
źródło
x + y
ix += y
jest dokładnie taka sama, ale na miejscu.Jeśli chcesz dodać elementy z listy (list2) na końcu innej listy (listy), możesz użyć metody rozszerzenia listy
Lub jeśli chcesz połączyć dwie listy, możesz użyć znaku +
źródło
Jeśli po prostu to zrobimy
x.append(y)
, y zostanie odniesione do x, tak że wszelkie zmiany dokonane w y wpłyną również na dołączony x. Więc jeśli musimy wstawić tylko elementy, powinniśmy wykonać następujące czynności:x = [1,2,3] y = [4,5,6] x.append(y[:])
źródło