Python面试题及详细答案150道(91-100) -- 迭代器与生成器篇
《前后端面试题
》专栏集合了前后端各个知识模块的面试题,包括html,javascript,css,vue,react,java,Openlayers,leaflet,cesium,mapboxGL,threejs,nodejs,mangoDB,SQL,Linux… 。
文章目录
- 一、本文面试题目录
-
-
- 91. 什么是迭代器(Iterator)?它与可迭代对象(Iterable)的区别?
-
- 核心区别
- 示例
- 92. 如何判断一个对象是否是可迭代的?
-
- 常用方法
- 93. 迭代器的`__iter__()`和`__next__()`方法的作用。
-
- `__iter__()`方法
- `__next__()`方法
- 示例:自定义迭代器
- 94. 生成器表达式的语法是什么?与列表推导式有何区别?
-
- 语法
- 与列表推导式的区别
- 示例对比
- 95. 生成器如何实现暂停和恢复执行?
-
- 实现原理
- 示例:生成器的暂停与恢复
- 进阶:通过`send()`传递值恢复执行
- 96. 什么是无限生成器?如何使用?
-
- 实现方式
- 示例
- 使用注意事项
- 97. 生成器在处理大数据时有何优势?
-
- 核心优势
- 对比总结
- 98. `yield`关键字的作用是什么?
-
- 主要功能
- 与`return`的区别
- 99. 如何将一个迭代器转换为列表?
-
- 方法与示例
- 注意事项
- 100. 解释`itertools`模块的作用,列举几个常用函数(如`chain()`、`cycle()`、`groupby()`)。
-
- 核心作用
- 常用函数示例
- 总结
-
- 二、150道Python面试题目录列表
一、本文面试题目录
91. 什么是迭代器(Iterator)?它与可迭代对象(Iterable)的区别?
迭代器(Iterator) 是实现了迭代协议的对象,用于逐个访问集合中的元素,具有状态记忆功能,能记住当前迭代位置。
可迭代对象(Iterable) 是能够产生迭代器的对象,即可以被for
循环遍历的对象(如列表、字符串、字典等)。