超超哥AI云计算超哥讲AI 出品

社群入口

AI 超哥 Codex 副业群

扫码加入群聊,一起交流 AI、Codex 与副业实践。

原图注明二维码于10月20日前有效;若提示过期或无法入群,请等待更新二维码。

AI 超哥 Codex 副业群入群二维码在新窗口打开原图

可迭代对象与迭代器

面向对象与高级 Python#Python全栈#第三阶段#面向对象与高级 Python#可迭代对象与迭代器约 588 字 · 2 分钟阅读
追问显示
点击任意追问卡片可收起 / 展开

可迭代对象与迭代器有什么区别?

追问 列表、列表迭代器和生成器分别属于什么类型?一个迭代器是否也可迭代?

iter() 与 next() 分别做什么?

追问 迭代结束时发生什么?next(iterator, default) 如何表达结束后的默认行为?

for 循环如何使用迭代协议?

追问 __iter__()、__next__() 与 StopIteration 如何协作?

如何实现一个从起始值到结束值的自定义迭代器?

追问 结束边界、内部状态和耗尽后的行为如何验证?

如何设计可以多次独立遍历的集合对象?

追问 每次返回新的迭代器,与集合本身充当同一个迭代器有什么区别?

同一个迭代器连续执行两次 list(iterator),会得到什么?

追问 第一次读取如何改变状态?想重新遍历时应该重建什么?

为什么不能根据“可以遍历”推断一个对象支持长度或下标?

追问 无限迭代器、流式数据与普通列表在这些操作上有什么不同?

enumerate() 与 zip() 分别适合什么任务?

追问 zip 输入长度不同会怎样?要求长度一致时如何校验或使用对应版本支持的选项?

map() 与 filter() 在 Python 3 中如何产生结果?

追问 惰性计算与列表推导式在执行时机、重复读取和异常位置上有什么差异?

如何从大数据序列中只读取前若干条,而不把全部结果转成列表?

追问 itertools.islice()、终止条件和有限读取如何使用?输入无限时要注意什么?