Что такое синтаксис для вставки одного списка в другой список в python?

Учитывая два списка:

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

Каков синтаксис:

  • Вставьте x в y, чтобы y теперь выглядел как [1, 2, 3, [4, 5, 6]]?
  • Вставьте все элементы x в y, чтобы y теперь выглядел как [1, 2, 3, 4, 5, 6]?

Ответ 1

Вы имеете в виду 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] 

Ответ 2

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

Список имеет метод 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]

Чтобы расширить список в определенной точке вставки, вы можете использовать сортировку списка (спасибо, @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]

Ответ 4

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

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]

Ответ 5

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

x += y

Ответ 6

Если мы просто сделаем x.append(y), y получит ссылку на x так, что любые изменения, внесенные в y, также будут влиять на добавленный x. Поэтому, если нам нужно вставить только элементы, мы должны сделать следующее:

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

Ответ 7

Многократное добавление и вставка

>>> a = [1, 4, 5]
>>> b = [2, 3]

Добавить список в список:

>>> a.extend(b)
>>> print(a)
[1, 4, 5, 2, 3]

Вставить список в список:

>>> i = 1
>>> [a.insert(i, v) for v in b[::-1]]
>>> print(a)
[1, 2, 3, 4, 5]