迭代器是一个需要手动实现 __iter__ 和 __next__ 方法的对象,而生成器是用 yield 关键字定义的函数,自动实现了迭代器协议,更简洁且适合动态生成数据
两者示例代码
# 迭代器
class IteratorExample:
def __init__(self, data):
self.data = data
self.index = 0
def __iter__(self):
return self
def __next__(self):
if self.index < len(self.data):
value = self.data[self.index]
self.index += 1
return value
else:
raise StopIteration
# 生成器
def generator_example(data):
for item in data:
yield item
# 测试
data = [1, 2, 3]
iterator = IteratorExample(data)
print("迭代器输出:", list(iterator))
generator = generator_example(data)
print("生成器输出:", list(generator)) 网友回复
如何写ai提示词让大模型根据主题生成视频脚本json,然后让Hyperframe渲染出mp4视频?
有哪些字体使用等宽编程代码展示?
如果让演唱会歌迷的上万手机屏幕和闪光灯一起被现场中控控制闪烁?
Midjourney为啥进军医疗领域了?
python如何跟踪足球比赛指定球员全场运动标注打聚光灯合成
如何将linux服务器的文件目录映射到windows电脑磁盘?
Docling 与 MarkItDown 两个库有啥不同?
豆包收费后国产其他ai软件也会跟进收费吗?
JPEG 与 HEIF图片格式区别?
centos7版本太旧无法安装python3.11,如何在docker中运行python3.11?


