k=['d','e','f']
v=[4,5,6]
h=zip(k,v) #zipping
for i,j in h:
print(i ,':',j)
(k,v)=zip(*h) #unzipping
print(k)
print(v)
output:
Traceback (most recent call last):
File "hasht.py", line 6, in <module>
(k,v)=zip(*h)
ValueError: not enough values to unpack (expected 2, got 0)
答案 0 :(得分:0)
zip在Python 2中创建一个列表,因此您的h
是一个可以随时检查的值。 zip在Python 3中创建了一个迭代器,因此使用print
语句的循环耗尽了h
。
使用h = list(zip(k, v))
在Python 2和3中获得相同的行为。
答案 1 :(得分:0)
k=['d','e','f']
v=[4,5,6]
h=zip(k,v) #zipping
zip_list=list(h)
for i,j in h:
print(i ,':',j)
type(h)
h
(k,v)=zip(*h) #unzipping on empty object
print(k)
print(v)
您仍然可以迭代多次创建的zip_list对象
for m,n in zip_list:
print (m,n)