关注
迭代器和生成器都是 Python 中用于处理可迭代对象的工具。
一、迭代器
1. 定义:
- 迭代器是一个可以记住遍历位置的对象。
- 迭代器对象从集合的第一个元素开始访问,直到所有的元素被访问完结束。迭代器只能往前不会后退。
2. 特点:
- 迭代器提供了一种不依赖索引的访问集合元素的方式。
- 节省内存,因为它不需要一次性加载整个集合到内存中。
3. 举例:
- 对于列表、元组、字符串等可迭代对象,可以使用 iter() 函数将其转换为迭代器。
my_list = [1, 2, 3]
my_iterator = iter(my_list)
print(next(my_iterator)) 输出 1
print(next(my_iterator)) 输出 2
print(next(my_iterator)) 输出 3
二、生成器
1. 定义:
- 生成器是一种特殊的迭代器,它可以在需要的时候生成值,而不是一次性生成所有的值并存储在内存中。
2. 特点:
- 节省内存,尤其适用于处理大量数据。
- 使用 yield 关键字来暂停和恢复函数的执行,从而实现值的逐步生成。
3. 举例:
- 使用生成器函数来创建生成器。
def my_generator():
yield 1
yield 2
yield 3
gen = my_generator()
print(next(gen)) 输出 1
print(next(gen)) 输出 2
print(next(gen)) 输出 3
- 还可以使用生成器表达式来创建生成器,它类似于列表推导式,但使用圆括号而不是方括号。
my_generator = (i for i in range(3))
print(next(my_generator)) 输出 0
print(next(my_generator)) 输出 1
print(next(my_generator))
查看原帖
点赞 评论
相关推荐
点赞 评论 收藏
分享
点赞 评论 收藏
分享
牛客热帖
更多
正在热议
更多
# 领导秒批的请假话术 #
3619次浏览 26人参与
# 五一之后,实习真的很难找吗? #
37378次浏览 237人参与
# 平安产险科技中心求职汇总 #
247022次浏览 2629人参与
# 材料专业哪个方向更好找工作? #
17935次浏览 89人参与
# 如果有时光机,你最想去到哪个年纪? #
42812次浏览 765人参与
# 如何缓解入职前的焦虑 #
168774次浏览 1251人参与
# 扒一扒那些奇葩实习经历 #
39599次浏览 752人参与
# 你想留在一线还是回老家? #
30198次浏览 381人参与
# 面试等了一周没回复,还有戏吗 #
113571次浏览 1054人参与
# 应届生薪资多少才合理? #
2820次浏览 24人参与
# 考研可以缓解求职焦虑吗 #
18970次浏览 237人参与
# 求职遇到的搞笑事件 #
104288次浏览 730人参与
# 你喜欢工作还是上学 #
36430次浏览 401人参与
# 入职第一天,你准备什么时候下班 #
44958次浏览 290人参与
# 许愿池 #
270440次浏览 2842人参与
# 经纬恒润求职进展汇总 #
115781次浏览 1021人参与
# 视觉/交互/设计百问百答 #
39727次浏览 418人参与
# 大疆的机械笔试比去年难吗 #
69399次浏览 599人参与
# 考研失败就一定是坏事吗? #
98849次浏览 826人参与
# 机械人求职现状 #
13549次浏览 122人参与
# 硬件人,你被哪些公司给挂了 #
46147次浏览 713人参与