Python 3.x允许在带有*的并行分配中转储多余的收益
>>> a, b, *args = range(4)
>>> a
0
>>> b
1
>>> args
[2, 3]
但是2.x不会:
>>> a, b, *args = range(4)
File "<stdin>", line 1
a,b,*args = range(4)
^
SyntaxError: invalid syntax
将来是否会有一些导入使该语句与Python 2.x兼容?
AFAIK此功能在Python 2中不可用,如果您确实需要这样的东西–只需编写实用程序功能
def unpack(iterable, elements_count):
iterator = iter(iterable)
for _ in range(elements_count):
yield next(iterator)
# maybe use `list` or leave `iterator`-object
yield tuple(iterator)
然后
a, b, args = unpack(range(4), 2)
将给出预期的行为
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句