为什么zip对象消失了?

时间:2014-03-22 02:22:40

标签: python python-3.x

请参阅代码,为什么列表(w)正确显示,h什么都不显示?

>>> x=[1,2,3]
>>> y=[4,5,6]
>>> w=zip(x,y)
>>> list(w)
[(1, 4), (2, 5), (3, 6)]
>>> h=list(w)
>>> h
[]

1 个答案:

答案 0 :(得分:7)

在Python 3 中,zip返回iterator 1

  

创建一个迭代器,它聚合来自每个迭代的元素。

迭代器会记住迭代的位置;在h=list(w)行,迭代器已经是#34;在最后"从而产生一个空列表/序列。

尝试w = list(zip(x,y)),这会强制迭代器到列表一次


1 Python 2中的zip返回一个列表,因此这种行为仅在Python 3中展示。