关于Python的生成器的一些简单问题。我关于生成器这部分学得有点晕,如果问题问的有点傻请请不要介意。

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了关于Python的生成器的一些简单问题。我关于生成器这部分学得有点晕,如果问题问的有点傻请请不要介意。相关的知识,希望对你有一定的参考价值。

1.generator的本质是否就是列出一段算式,然后让计算机自己推导?2.生成器和循环以及列表生成式有什么区别?3.generator能不能用索引?

    不是。生成器不涉及到任何推导。只是定义好计算方式,每次调用仅生成一个数据(执行到下一次yield)即返回调用端。

    生成器是一种(惰性)生成数据的方式。循环是一种程序结构控制工具/语法。列表生成式是生成列表的一种语法结构。这些东西都可以用来做遍历、迭代。各有优缺点。

    generator不支持索引。


常用程序里面生成器使用场景并不多,如果不理解可以先略过。生成器的优点是可以支持惰性计算;可以用来做执行流程跳转。缺点在于只能遍历一次;调试不方便。

追问

>>> g = (x * x for x in range(10))
>>> g
at 0x104feab40>

那这个程序最后的g返回的一段是怎么回事?

追答

这个是 generator expression,和 generator function 是不一样的。通常单独提generator指的是 generator function.

generator expression和list comprehension写法比较接近,只是结果返回的形式也是一个generator。这里打印的g表示g是一个generator expression, 因为是惰性的,所以直接打印g不会做任何实际运算。如果要获取g里面的元素,需要遍历。比如for循环,或者转换为list.

参考技术A generator不能用索引
其他两问 参考:
http://cache.baiducontent.com/c?m=9d78d513d9810ae902b0c8690d6782314503c0307a8a90013894cd47c9221d03506790a63a675541c4c50b395afc1416ada762256b5637b7ec99d515c0fec97174952536731d834717d213accb4127ca27c151eea848e4edf46499fe82d5d45550c053067881a4d80b0b14cf6df51031b0a49b4a085d12b9ec3a61f55a7c2d982042bc41f2e2633e01d0f5dc5f46c37dd66411c3a563ba3b18b411f01c1a7413a41bbb02532432&p=882a9647d48602e91abe9b7c590c88&newp=b477c64ad49c17bc07bd9b7d0f149f231610db2151d7d0106b82c825d7331b001c3bbfb423221b01d7c6776302aa4856e8f732743c0821a3dda5c91d9fb4c57479d771272f&user=baidu&fm=sc&query=python+generator&qid=a1625dd9000753de&p1=2本回答被提问者采纳

Python分析《我不是药神》豆瓣评论

读取 Mongo 中的短评数据,进行中文分词

技术分享图片

对分词结果取 Top50 生成词云

技术分享图片

生成词云效果

技术分享图片

看来网上关于 我不是药神 vs 达拉斯 的争论很热啊。关于词频统计就这些,代码中也会完成一些其它的分析任务(其实都是一些很简单的任务,纯练手用),后续会持续更新。

其它分析任务

点赞数 Top10

技术分享图片

author = 忻钰坤, date = 2018-07-04 00:00:00, vote = {{28129:0}}, comment = “你敢保证你一辈子不得病?”纯粹、直接、有力!常常感叹:电影只能是电影。但每看到这样的佳作,又感慨:电影不只是电影!由衷的希望这部电影大卖!成为话题!成为榜样!成为国产电影最该有的可能。

author = 沐子荒, date = 2018-07-03 00:00:00, vote = {{27237:0}}, comment = 王传君所有不被外人理解的坚持,都在这一刻得到了完美释放。他不是关谷神奇,他是王传君。 你看,即使依旧烂片如云,只要还有哪怕极少的人坚持,中国影视也终于还是从中生出了茁壮的根。 我不是药神,治不好这世界。但能改变一点,总归是会好的。

author = 凌睿, date = 2018-06-30 00:00:00, vote = {{18304:0}}, comment = 别说这是“中国版《达拉斯买家俱乐部》”了,这是中国的真实事件改编的中国电影,是属于我们自己的电影。不知道就去百度一下“陆勇”,他卖印度抗癌药的时候《达拉斯买家俱乐部》还没上映呢。所以别提《达拉斯买家俱乐部》了,只会显得你无知。(别私信我了,我800年前就知道《达拉斯》也是真事改编)

author = 徐若风, date = 2018-06-06 00:00:00, vote = {{16426:0}}, comment = 放豆瓣语境下,是部时至今日终于拍出来的国产“高分韩国电影”——拿现实题材拍商业类型片,社会性意义摆在那,群戏也处理得相当不错。对我们国家而言,这样的电影多一部是一部,走一步是一步。

author = 桃桃淘电影, date = 2018-06-19 00:00:00, vote = {{13337:0}}, comment = 最大的病,其实是穷病。真的被感动了,整体都很成熟,也有些许韩片的影子。几个演员表演都非常出色。可看性和内在的表达都不错。这个世界最荒诞在于,越贴近真实,真实越荒诞。人这一生,太不易了。最后,王传君,加油哦!

author = 远世祖, date = 2018-06-30 00:00:00, vote = 9102, comment = 文牧野眼睛太毒了,观众的笑点、泪点、痛点被他牢牢抓住,徐峥现在不拼演技开始掏心炸肺放脱自我了,药物在中国绝对是个“不可说”,但这个电影说了它能说的,也不显山不漏水的说了它所不能说的,讲的是现实,但看过电影之后才会明白其实是超现实,2018最佳!

author = 影志, date = 2018-06-19 00:00:00, vote = 7076, comment = “今后都会越来越好吧,希望这一天早点来”口罩成为符号,不是雾霾,而是人性的仪式,结尾竟然看到《辛德勒名单》一样的救赎。通俗感人,上海电影节首映哭倒一片,基于真实事件改编的社会意义加分,或许《我不是药神》之于中国,就像《摔跤吧爸爸》之于印度吧…能看到就不错。“其实只有一种病:穷病”

author = Noodles, date = 2018-07-03 00:00:00, vote = 6926, comment = 人生建议:别买零食,吃不下的。

author = 哪吒男, date = 2018-06-25 00:00:00, vote = 6211, comment = 最喜欢王传君的表演啊,几乎所有泪点都给他了!!而他曾经的同伴们,下月继续拿《爱情公寓》电影版面对观众。这个圈子里还是有不爱赚快钱的年轻演员,真好。

author = 开开kergelen, date = 2018-07-04 00:00:00, vote = 5549, comment = 小时候路过一家药店,门口的对联写着“只愿世间无疾病,何愁架上药染尘”

15 天评论量分布、走势

技术分享图片

技术分享图片

15天评论量分布图

技术分享图片

15天评论量走势图

技术分享图片

我有一个微信公众号,经常会分享一些python技术相关的干货;如果你喜欢我的分享,可以用微信搜索“python语言学习”关注

欢迎大家加入千人交流答疑裙:699+749+852

以上是关于关于Python的生成器的一些简单问题。我关于生成器这部分学得有点晕,如果问题问的有点傻请请不要介意。的主要内容,如果未能解决你的问题,请参考以下文章

Python图像特征的音乐序列生成关于音乐生成的思路转变

Python图像特征的音乐序列生成关于小样本的一些思考

Python 3:关于字谜的大学作业非常困难(至少对我而言)

Python分析《我不是药神》豆瓣评论

python -----关于生成器generator

关于Python中的yield的理解