给出两个列表:

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.a pend(y), y会被引用到x中,这样对y的任何更改也会影响附加的x。所以如果我们只需要插入元素,我们应该这样做:

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

其他回答

你也可以…

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]

这个问题并没有说清楚你到底想要达到什么目标。

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]

你是说附加吗?

>>> 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.a pend(y), y会被引用到x中,这样对y的任何更改也会影响附加的x。所以如果我们只需要插入元素,我们应该这样做:

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