python - 如何迭代 azure.core.paging.ItemPaged?
问题描述
我有一个迭代器对象<iterator object azure.core.paging.ItemPaged at 0x7fdb309c02b0>
。当我第一次迭代它时(见下面的代码),它会打印结果。但是,当我第二次执行此代码时,它什么也不打印。
for i, r in enumerate(result):
print(r)
我的代码有什么问题?我需要以某种方式重置枚举器吗?
解决方案
这是iterator
Python 中的默认行为。
如果您希望迭代器在第二次仍然工作,您可以使用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)
推荐阅读
- sql - 过程中的 DBMS_UTILITY.COMPILE_SCHEMA
- c++ - 为什么 switch 和 if 语句与转换运算符的行为不同?
- apache-spark - 自定义 /src/main/resources/log4j.properties 未在 Spark 2.2 中加载
- javascript - Js:解析 .mov 元数据
- c# - 防止在逗号分隔的字符串中替换已替换的字符串
- android - FusedLocationProviderClient api异常,同时申请位置更新坐标
- emacs - Emacs 单引号字符串中的通用模式被突出显示
- angular - .NET Core 2/Angular 5 图像压缩
- php - 我想在 Prestashop 中通过 id 获取产品,并列出它们
- ios - 呈现的 UIViewController 在 segue 动画后消失