如何遍历 azure.core.paging.ItemPaged?

How to iterate over azure.core.paging.ItemPaged?

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

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

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

这是 python 中 iterator 的默认行为。

如果您希望迭代器在第二次时仍然有效,您可以使用 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)