nightcomein 2023-03-27 19:56 采纳率: 75%
浏览 26

python中的zip函数问题

想知道,zip函数打包了两个数组,为什么直接用print(list(zipdata))可以打印里面的内容,但是赋值给新的变量zipdata2后就不行呢,就打印不出来了,不是很看得懂我测试的这个结果,能不能帮忙解释一下
测试:


#python
list1 = [1, 2, 3]
list2 = ["one", "two", "three"]
zipdata = zip(list2, list1)
print(zipdata)
print(type(zipdata))
print(list(zipdata))
print("*"*20)

zipdata2 = list(zipdata)
print(zipdata2)
print(type(zipdata2))


#结果
<zip object at 0x000001EE145306C0>
<class 'zip'>
[('one', 1), ('two', 2), ('three', 3)]
********************
[]
<class 'list'>
  • 写回答

1条回答 默认 最新

  • 小小小小人水豚 2023-03-27 20:04
    关注

    python中zip()函数返回的<class 'zip'>是一个迭代器(有__next__和__iter__方法),当你通过第8行代码执行后,这个迭代器就迭代完了,相当于for循环遍历完了,所以第11行执行后就没有数据了,返回的就是空列表。把第8行注释掉zipdata2就不会是空列表了

    有帮助的话,请点采纳该答案~

    评论

报告相同问题?

问题事件

  • 修改了问题 3月27日
  • 修改了问题 3月27日
  • 创建了问题 3月27日