Python 检查压缩数据似乎会将其删除
当我检查压缩后的数据时,它的行为就像它已被擦除一样。首先,创建zip对象:Python 检查压缩数据似乎会将其删除,python,iterator,Python,Iterator,当我检查压缩后的数据时,它的行为就像它已被擦除一样。首先,创建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)) 返回一个空列表
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))
返回一个空列表。我的数据到哪里去了?迭代器被设计为只动态生成一次数据,而不是更多。 通过这样做:
print(list(numbers_letters))
您第一次耗尽了迭代器。所以,第二次没有什么东西可以重复了 这是因为
zip
在Python3.x中返回一个迭代器。只能在迭代器上迭代一次
我建议使用:
print(list(zip(numbers, letters)))
简单地说,考虑到您对指向
链接列表中的节点(C,C++),一旦遍历列表
使用头部指针时,不能再次使用它从头部开始
没有办法重新设置为从头开始吗?没有。这不是它的工作原理。您需要再次调用zip(),或者存储迭代器并复制它