在Python 2.7中从列表中解包值

在Python 2.7中从列表中解包值,python,python-2.7,list,Python,Python 2.7,List,Python新手在此: 给定一个列表和一个值,如何将列表解压为单独的对象并预先添加一个值。与下面的代码不同,数组的长度未知: x = [1,2,3,4] y = 0,x y 电流输出: (0, [1, 2, 3, 4]) 期望输出: (0, 1, 2, 3, 4) 我知道在Python3中使用y=0,*x可以很容易地完成,但是在Python2.7中如何实现呢 谢谢您不应该在这里使用解包,而应该使用连接 y = [0] + x 将y插入x并生成x元组 x = [1,2,3,4] y = 0

Python新手在此: 给定一个列表和一个值,如何将列表解压为单独的对象并预先添加一个值。与下面的代码不同,数组的长度未知:

x = [1,2,3,4]
y = 0,x
y
电流输出:

(0, [1, 2, 3, 4])
期望输出:

(0, 1, 2, 3, 4)
我知道在Python3中使用
y=0,*x
可以很容易地完成,但是在Python2.7中如何实现呢


谢谢

您不应该在这里使用解包,而应该使用连接

y = [0] + x

将y插入x并生成x元组

x = [1,2,3,4]
y = 0
x.insert(0,y)
print(tuple(x))
输出

(0, 1, 2, 3, 4)

您可以使用参数解包来完成此操作

>>> (lambda *a: a)(0, *x)
(0, 1, 2, 3, 4)

但是不要这样做。

注意,这会修改
x
,OP可能不希望这样。为什么要修改
x
?此外,在零位插入相对昂贵,因为所有后续列表项都必须上移以腾出空间,这是一个O(n)操作,虽然它以C速度发生,但如果没有必要,最好避免。结果是否需要是一个元组,或者列表可以吗?如果@berneng希望y是tuple,他可以简单地做y=tuple([0]+x)或y=tuple(y)。