为什么这不起作用?:
t = zip([3],[4],[3])
print("1:",*t)
print("2:",*t)
我们不能在Python中第二次解包,为什么会这样?
答案 0 :(得分:5)
zip
在Python 3.x中返回iterator,而不是像在Python 2.x中那样返回列表。这意味着,在您解压缩一次后,它将耗尽并且不再可用:
>>> t = zip([3],[4],[3])
>>> print("1:",*t)
1: (3, 4, 3)
>>> list(t) # t is now empty
[]
>>>
您需要将迭代器显式转换为sequence(列表,元组等)。如果你想多次解压缩它:
>>> t = tuple(zip([3],[4],[3]))
>>> print("1:",*t)
1: (3, 4, 3)
>>> print("2:",*t)
2: (3, 4, 3)
>>>