解压缩list/tuple中的前两个元素

Han*_*Sun 36 python

有没有办法在python中这样做:

a, b, = 1, 3, 4, 5
Run Code Online (Sandbox Code Playgroud)

然后:

>>> a
1
>>> b
3
Run Code Online (Sandbox Code Playgroud)

(上面的代码不起作用,因为它会抛出ValueError: too many values to unpack.)

Gus*_*son 73

只是为了补充Nolen的答案,在Python 3中,您还可以解包其余部分,如下所示:

>>> a, b, *rest = 1, 2, 3, 4, 5, 6, 7
>>> a
1
>>> rest
[3, 4, 5, 6, 7]
Run Code Online (Sandbox Code Playgroud)

不幸的是,这在Python 2中不起作用.

  • 如果不需要其余的,请使用“_”。像这样:`a, b, *_ = array` (8认同)

Ned*_*der 47

没有办法用你所展示的文字来做.但你可以切片以获得你想要的效果:

a, b = [1, 3, 4, 5, 6][:2]
Run Code Online (Sandbox Code Playgroud)

要获取列表的前两个值:

a, b = my_list[:2]
Run Code Online (Sandbox Code Playgroud)


jam*_*lak 17

在Python 3上,您可以执行以下操作:

>>> a, b, *_ = 1, 3, 4, 5
>>> a
1
>>> b
3
Run Code Online (Sandbox Code Playgroud)

_ 只是你不需要的价值观的占有者


Nol*_*lty 5

你可以_用来表示你想“扔掉”的变量

>>> a, b, _ = 1, 3, 4
>>> a
1
>>> b
3
Run Code Online (Sandbox Code Playgroud)

  • 谢谢!但是当有更多元素 ``a,b,_ = 1,3,4,5`` 时它不起作用 (2认同)