Python的生成器函数
1. 生成器的概念
生成器是Python中的一个对象,对这个对象进行操作,可以依次生产出按生成器内部运算产生的数据。但是要注意,如果不对生成器进行操作,是不会产生数据的。称这样的方式为惰性求值,延或者迟求值。
2. 构造生成器
2.1生成器表达式
以前学过一种方式叫生成器表达式,例如:
g1 = (x*2 for x in range(5))
next(g1)
0
next(g1)
2
...
这就不说了。
2.2 生成器函数
生成器函数,就是说定义函数时,内部带yield就算生成器函数。
每次返回的值就是yield后面的值,例如:
def g2():for x in range(5):yield x*2list(g2)
[0, 2, 4, 6, 8]
这个yield很牛逼,和return一样,遇到之后就返回后面的值,但是yield会记住当时执行到哪里了,下一次执行从这个地方开始(就是生成器的特点)。
3. 生成器函数的语法糖
就是yield from 语法,一种看起来简洁的表达形式吧。
普通形式的生成器函数:
def inc1():for x in range(10000):yield x
相当于
def inc2():yield from range(10000)
也就是说,yield from iterable 相当于 yield item for item in iterable。
Python的生成器函数相关推荐
- python之生成器(~函数,列表推导式,生成器表达式)
一.生成器 概念:生成器的是实质就是迭代器 1.生成器的贴点和迭代器一样,取值方式也和迭代器一样. 2.生成器一般由生成器函数或者声称其表达式来创建,生成器其实就是手写的迭代器. 3.在python中 ...
- python生成器函数_Python 编写生成器函数
Python 编写生成器函数,可以将许多函数简洁地写成生成器表达式的形式,比如之前讲过的映射和过滤.另外,也可以用Python内置的高阶函数(例如map()或者filter())或者生成器函数实现这些 ...
- python文件之间的相互调用_「Python 系列」 Python 生成器函数详解
Python的生成器函数提供了一种强大的机制来管理数据和计算资源,但是对于Python的新手来说,它们不一定直观.在本文中,我将分解生成器的机制,同时还介绍我希望是一个有启发性的示例:用于管理和流传输 ...
- python迭代器和生成器(3元运算,列表生成式,生成器表达式,生成器函数)
1.1迭代器 什么是迭代器: 迭代器是一个可以记住遍历的位置对象 迭代器对象从集合的第一个元素元素开始访问,直到所有元素被访问完结束,迭代器只能往前不会后退. 迭代器有两个基本方法:iter ,nex ...
- python中哪个函数能生成集合_神奇的python系列11:函数之生成器,列表推导式
1.生成器 生成器的本质是迭代器. 在python中有三种方式来获取生成器 1.通过生成器函数 2.通过各种推到式来实现生成器 3.通过数据的转换也可以获取生成器 #函数 deffunc():prin ...
- Python基础day4 函数对象、生成器 、装饰器、迭代器、闭包函数
一.函数对象 正确理解 Python函数,能够帮助我们更好地理解 Python 装饰器.匿名函数(lambda).函数式编程等高阶技术. 函数(Function)作为程序语言中不可或缺的一部分,太稀松 ...
- python中的函数、生成器的工作原理
1.python中函数的工作原理 def foo():bar()def bar():pass python的解释器,也就是python.exe(c编写)会用PyEval_EvalFramEx(c函数) ...
- 如何用python生成软件_python中的生成器函数是如何工作的?
1. python中的普通函数是怎么运行的? 当一个python函数在执行时,它会在相应的python栈帧上运行,栈帧表示程序运行时函数调用栈中的某一帧.想要获得某个函数相关的栈帧,则必须在调用这个函 ...
- 《Python Cookbook 3rd》笔记(4.6):带有外部状态的生成器函数
带有外部状态的生成器函数 问题 你想定义一个生成器函数,但是它会调用某个你想暴露给用户使用的外部状态值. 解法 如果你想让你的生成器暴露外部状态给用户,别忘了你可以简单的将它实现为一个类,然后把生成器 ...
最新文章
- CF359D:Pair of Numbers(数论)
- Mapreuduce实现网络数据包的清洗工作
- 为什么Java 8中不再需要StringBuilder拼接字符串
- P1028 [NOIP2001 普及组] 数的计算 python
- 二、Zabbix-zabbix server部署-LNMP
- 高一计算机会考英语,高中会考英语单词表.doc
- Linux运维之道之网络基础学习1.3
- stm32学习(一)STM32简单介绍(初步了解单片机与STM32)
- 中国最美的十大宗教名山(图)
- 微商卖养生产品怎么吸粉?让客户慢慢进入你的营销场景
- 【转】PM、RD、QA、OP英文缩写
- 笔记本计算机的连接无线网络连接,笔记本电脑怎么连无线_笔记本电脑连wifi怎么连-win7之家...
- 微信html 全屏显示,关于微信上网页图片点击全屏放大效果
- 计算机体系结构复习笔记
- vscode插件及配置
- Unicode blocks 统计
- docker部署单机nacos
- 最要紧的是,我们首先要善良,其次是要诚实,再次是以后永远不要相互遗忘。...
- 【uni-app教程】uni-app入门教程
- 常见sql语句的语法错误