【问题标题】:Inspecting zipped data seems to erase it [duplicate]检查压缩数据似乎会删除它[重复]
【发布时间】:2020-02-06 09:23:15
【问题描述】:

当我检查我的压缩数据时,它的行为就像它已被删除一样。首先,创建 zip 对象:

numbers = [1, 2, 3]
letters = ['a', 'b', 'c']
numbers_letters = zip(numbers, letters) 
print(list(numbers_letters))

正如预期的那样,您会看到包含元组的列表:

[(1, 'a'), (2, 'b'), (3, 'c')]

但是现在:

print(list(numbers_letters))

返回一个空列表。我的数据去哪儿了?

【问题讨论】:

    标签: python iterator


    【解决方案1】:

    这是因为zip 在 Python3.x 中返回了一个迭代器。一个迭代器只能迭代一次。

    我建议使用:

    print(list(zip(numbers, letters)))
    

    简单来说,考虑到您对指针的了解 遍历链表(C,C++)中的节点 使用头指针,你不能再使用它从头开始。

    【讨论】:

    • 没有办法重新设置从头开始?
    • 不。这不是它的工作原理。您需要再次调用 zip() 或存储迭代器并复制它
    【解决方案2】:

    迭代器被设计为只生成一次数据,不再重复。

    通过做:

    print(list(numbers_letters))
    

    您第一次用尽了迭代器。所以,第二次没有什么可以迭代了!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-01-06
      • 2019-11-24
      • 1970-01-01
      • 1970-01-01
      • 2023-04-07
      • 1970-01-01
      • 2019-11-16
      • 2015-03-21
      相关资源
      最近更新 更多