关注
迭代器和生成器都是 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))
查看原帖
点赞 评论
相关推荐
点赞 评论 收藏
分享
牛客热帖
更多
正在热议
更多
# 父母问你工作找得怎么样,怎么回 #
9466次浏览 127人参与
# 面试被问期望薪资时该如何回答 #
390058次浏览 2178人参与
# 厦门银行科技岗值不值得投 #
19733次浏览 427人参与
# 哪些公司面试还在问八股? #
4706次浏览 54人参与
# 想从事Agent应该学习哪些技术? #
1972次浏览 61人参与
# 从投递到OC,你用了多久 #
9482次浏览 79人参与
# 你的秋招第一面感觉怎么样 #
146970次浏览 821人参与
# 有哪些公司在面试时考察AICoding? #
3405次浏览 45人参与
# 什么人最适合大厂? #
4736次浏览 41人参与
# HR面都在聊什么? #
3314次浏览 44人参与
# AI时代还有必要刷leetcode吗? #
1920次浏览 30人参与
# 你觉得机械有必要实习吗 #
82268次浏览 515人参与
# 哪一刻你突然觉得实习“有点值了” #
7411次浏览 54人参与
# 一人一道大厂面试题 #
134225次浏览 1334人参与
# kpi面有什么特征 #
106225次浏览 506人参与
# 硬件人的简历怎么写 #
341384次浏览 3121人参与
# 通信硬件2023笔面经 #
53782次浏览 322人参与
# 总结:哪家公司最喜欢泡池子 #
172084次浏览 620人参与
# 稳定和高薪机械人更看重哪个? #
582612次浏览 5568人参与
# 四大天坑是哪四家? #
113899次浏览 246人参与
# 计算机有哪些岗位值得去? #
395772次浏览 2943人参与
