Python中有没有办法这样做:
a, b, = 1, 3, 4, 5
进而:
>>> a
1
>>> b
3
上面的代码不起作用,因为它会抛出
ValueError: too many values to unpack
只是为了添加到 Nolen 的答案,在 Python 3 中,您还可以解压缩其余部分,如下所示:
>>> a, b, *rest = 1, 2, 3, 4, 5, 6, 7
>>> a
1
>>> rest
[3, 4, 5, 6, 7]
不幸的是,这在 Python 2 中不起作用。
没有办法使用您显示的文字来做到这一点。但是你可以切片得到你想要的效果:
a, b = [1, 3, 4, 5, 6][:2]
要获取列表的前两个值:
a, b = my_list[:2]
在 Python 3 上,您可以执行以下操作:
>>> a, b, *_ = 1, 3, 4, 5
>>> a
1
>>> b
3
_
只是您不需要的值的占位符
你可以用它_
来表示你想“扔掉”的变量
>>> a, b, _ = 1, 3, 4
>>> a
1
>>> b
3
或者在 Python 3.x 中你可以这样做:
a, *b = 1, 3, 4
给你:
In [15]: a
Out[15]: 1
In [16]: b
Out[16]: [3, 4]
尽管您必须解析b
. 这假设您只想在 的左侧有两个变量=
,否则您可以使用
a, b, *ignore = ....
使用 v3.x