首页 > 解决方案 > 如何迭代 azure.core.paging.ItemPaged?

问题描述

我有一个迭代器对象<iterator object azure.core.paging.ItemPaged at 0x7fdb309c02b0>。当我第一次迭代它时(见下面的代码),它会打印结果。但是,当我第二次执行此代码时,它什么也不打印。

for i, r in enumerate(result):
   print(r)

我的代码有什么问题?我需要以某种方式重置枚举器吗?

标签: pythonazureenumsiteratorenumerate

解决方案


这是iteratorPython 中的默认行为。

如果您希望迭代器在第二次仍然工作,您可以使用itertools.tee()函数来创建迭代器的第二个版本。如下所示:

from itertools import tee

#use the tee() function to create another version of iterator. here, it's result_backup
result, result_backup = tee(result)

print("**first iterate**")

for i, r in enumerate(result):
    print(r)


print("**second iterate**")

#in the 2nd time, you can use result_backup
for i, r in enumerate(result_backup):
    print(r)

推荐阅读