Даны два списка:
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]
?
Даны два списка:
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]
?Вы имеете в виду 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]
x.extend(y)
на месте, x+y
возвращает новый список. И x += y
, о котором здесь не упоминалось, похоже на расширение.
- person wim; 22.07.2018
Вопрос не дает понять, чего именно вы хотите достичь.
List имеет метод 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]
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
[1,2,4,5,6,3]
- person DragonKnight; 19.10.2017
Вы также можете просто сделать ...
x += y
x + y
, а x += y
- это то же самое, но на месте.
- person HTNW; 19.11.2017
Если вы хотите добавить элементы в списке (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]
Если мы просто сделаем x.append(y)
, y будет ссылаться на x, так что любые изменения, внесенные в y, также повлияют на добавленный x. Итак, если нам нужно вставить только элементы, мы должны сделать следующее:
x = [1,2,3]
y = [4,5,6]
x.append(y[:])
listA.insert(pos, x) for x in listB[::-1]
? - person wizzwizz4   schedule 21.06.2017