【发布时间】:2012-04-24 14:08:41
【问题描述】:
在 Python 3 中,我可以执行以下操作(另请参阅 PEP3132 关于扩展可迭代解包):
a, *b = (1, 2, 3)
# a = 1; b = (2, 3)
我可以做些什么来在 Python 2.x 中实现同样的优雅?
我知道我可以使用单元素访问和切片操作,但我想知道是否有更多的 pythonic 方式。到目前为止我的代码:
a, b = (1, 2, 3)[0], (1, 2, 3)[1:]
# a = 1; b = (2, 3)
【问题讨论】:
-
似乎是显式切片,或者使用多个匿名_下划线变量来捕获不需要的值:x、_、_ = tup
-
我实际上对这个功能有疑问。是否符合python“显胜于隐”的禅意?
-
@jdi 它明确指出:将第一个项目交给
a,将所有其他项目交给b。我觉得这很清楚......