Каков синтаксис для вставки одного списка в другой список в Python?


даны два списка:

x = [1,2,3]
y = [4,5,6]

что такое синтаксис:

  1. вставить x на y такое, что y сейчас выглядит так:[1, 2, 3, [4, 5, 6]]?
  2. вставить все предметы x на y такое, что y сейчас выглядит так:[1, 2, 3, 4, 5, 6]?
5 154

5 ответов:

вы имеете в виду append?

>>> x = [1,2,3]
>>> y = [4,5,6]
>>> x.append(y)
>>> x
[1, 2, 3, [4, 5, 6]]

или сливаешься?

>>> x = [1,2,3]
>>> y = [4,5,6]
>>> x + y
[1, 2, 3, 4, 5, 6]
>>> x.extend(y)
>>> x
[1, 2, 3, 4, 5, 6] 

вопрос не дает понять, чего именно вы хотите достичь.

список append метод, который добавляет свой аргумент в список:

>>> list_one = [1,2,3]
>>> list_two = [4,5,6]
>>> list_one.append(list_two)
>>> list_one
[1, 2, 3, [4, 5, 6]]

есть еще extend метод, который добавляет предметы из списка вы передаете в качестве аргумента:

>>> list_one = [1,2,3]
>>> list_two = [4,5,6]
>>> list_one.extend(list_two)
>>> list_one
[1, 2, 3, 4, 5, 6]

и конечно, есть insert метод, который действует аналогично append но позволяет указать точку вставки:

>>> list_one.insert(2, list_two)
>>> list_one
[1, 2, [4, 5, 6], 3, 4, 5, 6]

для расширения a список в определенной точке вставки вы можете использовать нарезку списка (спасибо, @florisla):

>>> l = [1, 2, 3, 4, 5]
>>> l[2:2] = ['a', 'b', 'c']
>>> l
[1, 2, 'a', 'b', 'c', 3, 4, 5]

нарезка списка довольно гибкая, так как позволяет заменить диапазон записей в списке диапазоном записей из другого списка:

>>> l = [1, 2, 3, 4, 5]
>>> l[2:4] = ['a', 'b', 'c'][1:3]
>>> l
[1, 2, 'b', 'c', 5]
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]

http://docs.python.org/tutorial/datastructures.html

вы также можете просто сделать...

x += y

Если вы хотите добавить элементы в список (list2) в конец другого списка (list), то вы можете использовать метод расширения списка

list = [1, 2, 3]
list2 = [4, 5, 6]
list.extend(list2)
print list
[1, 2, 3, 4, 5, 6]

или если вы хотите объединить два списка, то вы можете использовать знак+

list3 = list + list2
print list3
[1, 2, 3, 4, 5, 6]