给定两个列表:
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
没有在这里提到,它类似于 extend
。 - wim这个问题并没有清楚地说明你想要实现什么目标。
列表有一个名为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]
- DragonKnight您也可以只需执行以下操作即可安装:
x += y
x + y
和 x += y
只是在原地完成相同的操作。 - HTNWlist = [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]
吗? - wizzwizz4