223

给定两个列表:

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]
4

6 回答 6

394

你的意思是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] 
于 2010-09-20T00:46:01.840 回答
112

这个问题并没有明确你想要达到的目标。

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]
于 2010-09-20T00:51:48.793 回答
34
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

于 2010-09-20T00:43:50.690 回答
4

你也可以这样做...

x += y
于 2017-11-19T00:59:10.497 回答
3

如果要将列表(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]
于 2017-10-12T09:10:32.663 回答
1

如果我们只是这样做x.append(y),y 会被引用到 x 中,这样对 y 所做的任何更改也会影响附加的 x。因此,如果我们只需要插入元素,我们应该执行以下操作:

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

于 2019-03-15T21:03:20.030 回答