如何使用较少的变量解压缩列表?

Use*_*007 17 python

k = [u'query_urls', u'"kick"', u'"00"', u'msg=1212', u'id=11']

>>> name, view, id, tokens = k
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ValueError: too many values to unpack
Run Code Online (Sandbox Code Playgroud)

我需要提供5个变量来解压缩这个列表.有没有办法用更少的东西解压缩,以便tokens获得列表的其余部分.我不想写另一行来附加到列表....

谢谢.


当然我可以切片列表,单独分配等等.但我想知道如何使用上面的语法做我想做的事情.

Int*_*ang 29

在Python 3中,您可以这样做:(编辑:这称为扩展可迭代解包)

name, view, id, *tokens = k
Run Code Online (Sandbox Code Playgroud)

在Python 2中,您必须这样做:

(name, view, id), tokens = k[:3], k[3:]
Run Code Online (Sandbox Code Playgroud)

  • 是的,您需要括号,因为左侧需要两个项目,右侧需要两个项目. (2认同)