当前位置: 首页 > article >正文

Python_yield

yield是Python中的关键字,用于在函数中返回生成器。
当函数被调用时,yield会返回一个值,并保存当前函数状态。
下次迭代时,函数会从保存的状态继续执行,而非从头开始。
yield常用于处理大数据集或需要保持内存使用高效的场景。
例如,创建一个简单的生成器函数:

def count_up_to(n):
    for i in range(n):
        yield i

# 使用生成器
for num in count_up_to(5):
    print(num)

此函数会依次返回0到n-1的值。

跟普通的 return 不同的是,yield 会返回一个值,并且保存当前函数的状态,以便下次迭代时从此状态继续执行。这在处理大数据集或需要保持内存使用高效的场景中特别有用。

def simple_generator():
    yield 1
    yield 2
    yield 3

# 使用生成器
gen = simple_generator()

for value in gen:
    print(value)

这个生成器函数会依次返回 1、2 和 3,并且在每次 yield 之后都会暂停,直到被再次调用。
再看一个稍微复杂一点的例子,用 yield 来生成斐波那契数列:

def fibonacci_sequence():
    a, b = 0, 1
    while True:
        yield a
        a, b = b, a + b

# 使用生成器
fib = fibonacci_sequence()

for _ in range(10):
    print(next(fib))

在这个例子中,fibonacci_sequence 是一个无限生成斐波那契数列的生成器。利用 yield,我们可以在不占用大量内存的情况下获取数列中的任意多个元素。


http://www.kler.cn/a/319605.html

相关文章:

  • 丹摩征文活动|丹摩智算平台使用指南
  • C#文字识别API场景解析、表格识别提取
  • 算法——移除链表元素(leetcode203)
  • springboot项目中,使用ProGuard 对代码进行混淆
  • 第三十六章 Vue之路由重定向/404页面设置/路径模式设置
  • 低代码集成多方API的简单实现
  • 【项目实战】如何在项目中自定义错误码
  • VisualStudio编译时出现无法启动mt.exe
  • C++之spring
  • Codeforces Round 973 (Div. 2) C. Password Cracking
  • 抓取股票数据
  • 28岁打算转行靠谱么,这个年龄转行,有什么适合的行业么?
  • opencv滤波算法总结
  • Linux挂载命令
  • Docker 的安装部署与基本使用
  • Apache CVE-2021-41773 漏洞攻略
  • What is the new in C#11?
  • 验收测试:从需求到交付的全程把控!
  • BERT训练环节(代码实现)
  • 通过docker启动ElasticSearch后为ElasticSearch设置用户和密码
  • 分享课程:VUE数据可视化教程
  • vant_UI的选择时间小组件封装
  • excel VBA进行间比法设计
  • 运行python程序
  • 初识前端监控
  • C++如何进阶? -- 整理一些学习资料