什么是Python生成器?与迭代器的关系是什么?
2023-09-27 14:26:59 时间
生成器是一个特殊的迭代器,它保存的是算法,每次调用next()或send()就计算出下一个元素的值,直到计算出最后一个元素,没有更多的元素时,抛出StopIteration。生成器有两种类型,一种是生成器表达式(又称为生成器推导),一种是生成器函数。
生成器表达式是通过一个Python表达式语句去计算一系列数据,但生成器定义的时候数据并没有生成,而是返回一个对象,这个对象只有在需要的时候才根据表达式计算当前需要返回的数据。
生成器函数是一种语句中包含yield关键词的特殊的函数,它本身是一个迭代器,外部需要访问该迭代器数据的代码通过调用next函数(或迭代器的__next__方法)或send方法,触发函数执行计算并通过yield返回一个计算结果数据,返回数据后该函数立即停止执行,函数状态会保存在本地变量中,直到外部下次调用再激活,从上次停止执行部分开始执行。
具体关于生成器的知识请参考[《神秘而强大的Python生成器精讲》](https://www.cnblogs.com/LaoYuanPython/p/11087730.html)
相关文章
- Python中的可迭代Iterable和迭代器Iterator
- Python中的时间日期模块(time、datetime)
- python设计模式之迭代器与生成器详解(五)
- Python核心编程三大神兽——迭代器、生成器 、以及装饰器
- python的map函数
- Python 迭代器,错误、异常处理
- 【华为OD机试真题 python】计算礼品发放的最小分组数目 【2022 Q4 | 100分】
- 复盘:python知识:你知道可迭代对象吗?什么是迭代器
- 80 python - 打飞机案例(代码优化-抽象出基类)
- 《Python数据科学指南》——1.8 使用迭代器
- python代码实现双色球机打号码和挑战10秒小游戏
- python贪吃蛇
- Python基础必掌握的while无限迭代循环方法详解
- 《从问题到程序:用Python学编程和计算》——2.8 重复计算和循环
- python安装编译环境详解(Windows)
- Python学习---迭代器学习1210
- 2022&2023华为OD机试 - 二叉树层次遍历(Python)
- python第四周迭代器生成器序列化面向过程递归
- Python 基础 之 多任务 yield/greenlet/gevent 协程知识点的简单整理,以及对应的使用(迭代器、协程、进程线程和协程的区别等)
- Python迭代器和生成器
- Python 面向对象
- python第三十六课——2.迭代器对象
- python第三十六课——1.可迭代对象
- 【Python生成器与迭代器的区别】
- 【Python数据结构】——链表
- python 中json和字符串互相转换