我希望能够两次迭代list_iterator。但是当我尝试这样做时,第二次迭代器没有任何东西可以迭代。我能重置它吗?
l = iter(["1","2","3","4"])
for i in l:
print(i)
for i in l:
print(i)
我想在一个函数中进行两次迭代,所以需要传递一个list_iter对象。但是,传递list_iterator对象是否是不好的实践?
我希望能够两次迭代list_iterator。但是当我尝试这样做时,第二次迭代器没有任何东西可以迭代。我能重置它吗?
l = iter(["1","2","3","4"])
for i in l:
print(i)
for i in l:
print(i)
我想在一个函数中进行两次迭代,所以需要传递一个list_iter对象。但是,传递list_iterator对象是否是不好的实践?
您可以始终使用itertools.tee来获得可迭代对象的副本
。
Ala
l = iter(["1","2","3","4"])
# Don't use original....
original, new = tee(l)
yield
的函数都应该返回只能迭代一次的内容。你只需要确保你知道什么时候发生了这种情况。 - Steve Jessop