博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
python生成器generator
阅读量:7102 次
发布时间:2019-06-28

本文共 765 字,大约阅读时间需要 2 分钟。

hot3.png

什么是生成器?根据固定的算法和初始条件,边循环边生成元素,而不必提前把列表储存起来。

为什么使用生成器?节省内存。

参考:

生成generator的方法:

1、 把一个列表生成式的 [] 改成 () ,就创建了一个generator

>>> L = [x * x for x in range(10)]>>> L[0, 1, 4, 9, 16, 25, 36, 49, 64, 81]>>> g = (x * x for x in range(10))>>> g
at 0x7f9ab711c0a0>>>> type(g)
#类型是generator>>> type(L)

2、自定义函数中,把 print 改为yield,使用for 循环来输出结果

>>> def sanjiao(max):...     n=0...     b=[1]...     a=[1,1]...     while n 
>> sanjiao(10)
>>> for i in sanjiao(10):... print i... [1][1, 1][1, 2, 1][1, 3, 3, 1][1, 4, 6, 4, 1][1, 5, 10, 10, 5, 1][1, 6, 15, 20, 15, 6, 1][1, 7, 21, 35, 35, 21, 7, 1][1, 8, 28, 56, 70, 56, 28, 8, 1][1, 9, 36, 84, 126, 126, 84, 36, 9, 1]

 

转载于:https://my.oschina.net/u/3393220/blog/1547431

你可能感兴趣的文章
Scala的类层级讲解
查看>>
微信api 源码分享
查看>>
博客计划【推荐系统】
查看>>
iptables杂记
查看>>
orm2 中文文档 3.1 模型属性
查看>>
雪城大学信息安全讲义 4.3~4.4
查看>>
300+参展品牌,10+同期会议,IOTE2018国际物联网展苏州开幕
查看>>
New Product Launch: Alibaba Cloud Data Integration
查看>>
人工智能玩具安全性遭质疑,刺痛了谁的神经?
查看>>
Mac系统下利用ADB命令连接android手机并进行文件操作
查看>>
修改Windows和linux系统时间
查看>>
深入VR教育乱象,教育部和工信部召开研讨会
查看>>
深入分析Spring 与 Spring MVC容器
查看>>
理解卷积神经网络的利器:9篇重要的深度学习论文(上)
查看>>
[推荐]ORACLE SQL:经典查询练手第五篇(不懂装懂,永世饭桶!)
查看>>
Effective C++ (2) C#中的Const和Readonly
查看>>
JAVA字符串格式化-String.format()的使用
查看>>
[Oracle]Oracle 各产品的 生命周期
查看>>
.net 面试题系列文章二(附答案)
查看>>
ASP.NET 中 对GridView(网格视图)的查、分页、编辑更新、删除操作
查看>>