我可以用prepend元素而不是append扩展Python中的list吗?

2024-05-08 11:41:07 发布

您现在位置:Python中文网/ 问答频道 /正文

我能表演

a = [1,2,3]
b = [4,5,6]
a.extend(b)
# a is now [1,2,3,4,5,6]

是否有方法执行扩展列表并将新项添加到列表开头的操作?

像这样

a = [1,2,3]
b = [4,5,6]
a.someaction(b)
# a is now [4,5,6,1,2,3]

如果重要的话,我使用2.7.5版。


Tags: 方法列表isnowextendsomeaction
3条回答

可以指定给切片:

a[:0] = b

演示:

>>> a = [1,2,3]
>>> b = [4,5,6]
>>> a[:0] = b
>>> a
[4, 5, 6, 1, 2, 3]

本质上,list.extend()是对list[len(list):]片的赋值。

您可以在任何位置“插入”另一个列表,只需在该位置处理空切片即可:

>>> a = [1,2,3]
>>> b = [4,5,6]
>>> a[1:1] = b
>>> a
[1, 4, 5, 6, 2, 3]

这就是你需要的;-)

a = b + a

您可以使用^{}

import collections
a = collections.deque([1, 2, 3])
b = [4, 5, 6]
a.extendleft(b[::-1])

相关问题 更多 >