在Python 3中,我可以执行以下操作(另请参阅PEP3132 on Extended Iterable Unpacking):
a, *b = (1, 2, 3)
# a = 1; b = (2, 3)
Run Code Online (Sandbox Code Playgroud)
我能做些什么才能在Python 2.x中实现同样优雅?
我知道我可以使用单元素访问和切片操作,但我想知道是否有更多的pythonic方式.我的代码到目前为止:
a, b = (1, 2, 3)[0], (1, 2, 3)[1:]
# a = 1; b = (2, 3)
Run Code Online (Sandbox Code Playgroud) 是否可以在Python 2中模拟扩展元组解包?
具体来说,我有一个for循环:
for a, b, c in mylist:
Run Code Online (Sandbox Code Playgroud)
当mylist是大小为3的元组列表时,它工作正常.如果我传入一个大小为四的列表,我希望循环工作相同.
我想我最终会使用命名元组,但我想知道是否有一种简单的写法:
for a, b, c, *d in mylist:
Run Code Online (Sandbox Code Playgroud)
这样可以d吃掉任何额外的成员.