如此 处 所述,您可以使用星号解包未知数量的变量(如在函数中),但仅限于 python 3:
>>> a, *b = (1, 2, 3)
>>> b
[2, 3]
>>> a, *b = (1,)
>>> b
[]
在 python 2.7 中,我能想到的最好的是(不可怕,但很烦人):
c = (1, 2, 3)
a, b = c[0], c[1:] if len(c) > 1 else []
有没有办法像除法一样从 future 导入它,或者我是否需要我自己的函数来在 python 2.7 中进行未知长度的解包?
原文由 beardc 发布,翻译遵循 CC BY-SA 4.0 许可协议
在 python 2.X 中,你可以这样做:
as long as
c
has at least one member it will work because ifc
only has 1 thing in itc[1:]
is[]
.您可能应该确保
c
中至少有一个东西,否则c[0]
将引发异常。你可以这样做: