python 生成器 yield语句

生成器就是一个返回迭代器(iterator)的函数。 包含了 yield 的函数,就是一个生成器。

生成器每使用yield语句产生一个值,函数就会被冻结(暂停执行),被唤醒后(即再次调用)接着上次执行,继续产生新的值。

一个函数中可以包含多个yield,原理不变。

在一些情况下使用生成器可以节省存储空间。

 

示例一:

复制代码
def gen():
    for i in range(5):
        yield i*2
for i in gen():
    print(i)

--------------------
0
2
4
6
8
复制代码

 

示例二:

复制代码
def gen():
    for i in range(3):
        print('step one')
        yield i
        print('step two')
        yield i*2
        print('step three')

for i in gen():
    print(i)

------------------------
step one
0
step two
0
step three
step one
1
step two
2
step three
step one
2
step two
4
step three
复制代码

 

posted @   路漫漫我不畏  阅读(601)  评论(0编辑  收藏  举报
编辑推荐:
· .NET Core内存结构体系(Windows环境)底层原理浅谈
· C# 深度学习:对抗生成网络(GAN)训练头像生成模型
· .NET 适配 HarmonyOS 进展
· .NET 进程 stackoverflow异常后,还可以接收 TCP 连接请求吗?
· SQL Server统计信息更新会被阻塞或引起会话阻塞吗?
阅读排行:
· 传国玉玺易主,ai.com竟然跳转到国产AI
· 本地部署 DeepSeek:小白也能轻松搞定!
· 自己如何在本地电脑从零搭建DeepSeek!手把手教学,快来看看! (建议收藏)
· 我们是如何解决abp身上的几个痛点
· 普通人也能轻松掌握的20个DeepSeek高频提示词(2025版)
点击右上角即可分享
微信分享提示