Python中zip函数与zip(*)的使用,为什么经过for循环后的zip对象解压出错
a=[1,2,3]
b=[4,5,6]
zipped=zip(a,b)
print(zipped)
# for i in zipped:
# print(i)
aa,bb=zip(*zipped)
print(aa,bb)
'''
输出:
<zip object at 0x00000290BF16F288>
(1, 2, 3) (4, 5, 6)
'''
a=[1,2,3]
b=[4,5,6]
zipped=zip(a,b)
print(zipped)
for i in zipped:
print(i)
aa,bb=zip(*zipped)
print(aa,bb)
'''
输出:
Traceback (most recent call last):
File "D:/PycharmProjects/first/worker/c.py", line 7, in <module>
aa,bb=zip(*zipped)
ValueError: not enough values to unpack (expected 2, got 0)
<zip object at 0x00000187754DF288>
(1, 4)
(2, 5)
(3, 6)
'''
如果在for循环后再zip压缩一次aa,bb=zip(*zip(a,b))就不会报错。
for循环是解压了么,可是在for循环前后输出类型type(zipped)都显示class zip。输出id(zipped)都显示相同的id号。输出zipped都显示相同的zip object
for循环究竟做了什么?