python中有没有办法像这样做:
a, b, = 1, 3, 4, 5
然后:
>>> a
1
>>> b
3
(上面的代码不起作用,因为它会抛出ValueError: too many values to unpack
。)
答案 0 :(得分:68)
为了补充Nolen的答案,在Python 3中,您还可以解压缩其余部分,如下所示:
>>> a, b, *rest = 1, 2, 3, 4, 5, 6, 7
>>> a
1
>>> rest
[3, 4, 5, 6, 7]
不幸的是,这在Python 2中不起作用。
答案 1 :(得分:45)
没有办法用你所展示的文字来做。但你可以切片以获得你想要的效果:
a, b = [1, 3, 4, 5, 6][:2]
获取列表的前两个值:
a, b = my_list[:2]
答案 2 :(得分:15)
在Python 3上,您可以执行以下操作:
>>> a, b, *_ = 1, 3, 4, 5
>>> a
1
>>> b
3
_
只是您不需要的值的占位符
答案 3 :(得分:3)
您可以使用_
来表示您想要“扔掉”的变量
>>> a, b, _ = 1, 3, 4
>>> a
1
>>> b
3
答案 4 :(得分:0)
或者在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
答案 5 :(得分:0)
a, b, *_ = 1, 3, 4, 5
_
[4, 5]