Дано два списки:
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]
?
listA.insert(pos, x) for x in listB[::-1]
?
Дано два списки:
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]
?listA.insert(pos, x) for x in listB[::-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]
x.extend(y)
знаходиться на місці, x+y
повертає новий список. І x += y
, що тут не згадувалося, схоже на розширення.
Питання не дає зрозуміти, чого саме ви хочете досягти.
У списку є 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]
[1,2,4,5,6,3]
Ви також можете просто зробити ...
x += y
x + y
і x += y
це те саме, але на місці.
Якщо ви хочете додати елементи в списку (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]