在 Python 中有没有这样的方法:
a, b, = 1, 3, 4, 5
然后:
>>> a 1 >>> b 3
上面的代码不工作,因为它将引发
ValueError: too many values to unpack
您可以使用 _来表示您想要“抛弃”的变量
_
>>> a, b, _ = 1, 3, 4 >>> a 1 >>> b 3
为了补充 Nolen 的答案,在 Python3中,您还可以解压其余部分,如下所示:
>>> a, b, *rest = 1, 2, 3, 4, 5, 6, 7 >>> a 1 >>> rest [3, 4, 5, 6, 7]
不幸的是,这在 Python2中不起作用。
或者在 Python 3. x 中你可以这样做:
a, *b = 1, 3, 4
给你:
In [15]: a Out[15]: 1 In [16]: b Out[16]: [3, 4]
这将避免异常,尽管您必须解析 b。这里假设您只希望在 =的左边有两个变量,否则可以使用
b
=
a, b, *ignore = ....
使用 v3.x
在 Python3上,你可以做以下事情:
>>> a, b, *_ = 1, 3, 4, 5 >>> a 1 >>> b 3
_只是您不需要的值的占位符
对于您所显示的文字,没有办法做到这一点。但是你可以通过切片来达到你想要的效果:
a, b = [1, 3, 4, 5, 6][:2]
要获取列表的 前两个值:
a, b = my_list[:2]