文档章节

零基础学python-19.9 生成器函数与生成器表达式

raylee2015
 raylee2015
发布于 2015/10/21 08:10
字数 376
阅读 3
收藏 0

这一章节主要讨论生成器函数与生成器表达式的联系与区别。

1.联系

* 两者之间都是返回生成器。下面是示例代码

>>> g=(x for x in range(5))
>>> g
<generator object <genexpr> at 0x01E673F0>
>>>


 

>>> def test():
	for x in range(5):
		yield x

		
>>> test()
<generator object test at 0x01E67440>
>>>


* 两者都支持手动迭代或者自动迭代。下面是示例代码

>>> g=(x for x in range(5))
>>> next(g)
0
>>> for item in g:
	print(item)

	
1
2
3
4
>>>


 

>>> def test():
	for x in range(5):
		yield x

		
>>> g=test()
>>> next(g)
0
>>> for item in g:
	print(item)

	
1
2
3
4
>>>


2.不同

生成器函数它里面可以放置更多的,而且对于send的支持,个人认为函数比表达式来的容易,例如:

如果我想传一个参数到表达式或者函数里面进行运行,然后打印,这个时候表达式很难完成(暂时笔者没有想到表达式的实现,如果有读者能够实现,请告知,谢谢)。

下面只是给出函数的实现:

>>> def test():
	for x in range(5):
		y=(yield x)+2
		print(y)

		
>>> g=test()
>>> next(g)
0
>>> g.send (3)
5
1
>>>


总结,这一章节主要说明了生成器函数与生成器表达式的联系与区别。

 

这一章节就说到这里,谢谢大家

------------------------------------------------------------------

点击跳转零基础学python-目录

 

 

 

版权声明:本文为博主原创文章,未经博主允许不得转载。

本文转载自:http://blog.csdn.net/raylee2007/article/details/48864077

共有 人打赏支持
raylee2015
粉丝 6
博文 265
码字总数 44224
作品 0
江门
私信 提问
Python3+迭代器与生成器

转载Python3 迭代器与生成器 迭代器 迭代是Python最强大的功能之一,是访问集合元素的一种方式。 迭代器是一个可以记住遍历的位置的对象。 迭代器对象从集合的第一个元素开始访问,直到所有的...

xinet
2017/08/12
0
0
Python基础总结成千行代码,让Python入门更简单!

只要学会这千行代码,不管你是零基础还是弱基础或是没有接触过编程,都可以快速入门Python!当时我就不信邪啊,等我看完之后,即使作为一个Python老鸟了,还是领会到了很多教授他的独特见解!...

糖宝lsh
09/10
0
0
Python的迭代器和生成器

Python的迭代器和生成器 先说迭代器,对于string、list、dict、tuple等这类容器对象,使用for循环遍历是很方便的。在后台for语句对容器对象调用iter()函数,iter()是python的内置函数。iter(...

开元中国2015
2015/07/30
219
0
Python3 迭代器与生成器

迭代器 迭代是Python最强大的功能之一,是访问集合元素的一种方式。 迭代器是一个可以记住遍历的位置的对象。 迭代器对象从集合的第一个元素开始访问,直到所有的元素被访问完结束。迭代器只...

Eappo_Geng
04/05
0
0
一起学Python:生成器

生成器 1. 生成器 利用迭代器,我们可以在每次迭代获取数据(通过next()方法)时按照特定的规律进行生成。但是我们在实现一个迭代器时,关于当前迭代到的状态需要我们自己记录,进而才能根据...

祈澈姑娘
01/07
0
0

没有更多内容

加载失败,请刷新页面

加载更多

CentOS配置Tomcat监听80端口,虚拟主机

Tomcat更改默认端口为80 更改的配置文件是: /usr/local/tomcat/conf/server.xml [root@test-a ~]# vim /usr/local/tomcat/conf/server.xml # 找到 Connector port="8080" protocol="HTTP/1......

野雪球
今天
5
0
《稻盛和夫经营学》读后感心得体会3180字范文

《稻盛和夫经营学》读后感心得体会3180字范文: 一代日本经营之圣稻盛和夫凭借刻苦勤奋的精神以及深植于佛教的商业道德准则,成为了“佛系”企业家的代表人物。在《稻盛和夫经营学》“领导人...

原创小博客
今天
3
0
java框架学习日志-5(常见的依赖注入)

依赖注入(dependency injection) 之前提到控制反转(Inversion of Control)也叫依赖注入,它们其实是一个东西,只是看的角度不同,这章详细说一下依赖注入。 依赖——指bean对象创建依赖于...

白话
今天
4
0
红外接收器驱动开发

背景:使用系统的红外遥控软件没有反应,然后以为自己接线错误,反复测试,结果烧坏了一个红外接收器,信号主板没有问题。所以自己开发了一个红外接收器的python驱动。接线参见https://my.os...

mbzhong
今天
2
0
ActiveMQ消息传送机制以及ACK机制详解

AcitveMQ是作为一种消息存储和分发组件,涉及到client与broker端数据交互的方方面面,它不仅要担保消息的存储安全性,还要提供额外的手段来确保消息的分发是可靠的。 一. ActiveMQ消息传送机...

watermelon11
今天
2
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部