python_14_生成器
什么是生成器?
-- 动态的生成有规律的列表和元组,查询多少才会生成多少数据,不需要时数据不存在
- 大到10几万数据,就省空间了
什么是列表生成式?
-- [ handle_i_result for i in range(start,end,step)] - 列表成式
-- handle_i_result 是对 i (迭代对象)进行处理 (i*2 i*3 ......)
-- [i*2 for i in range(10)] 生成 [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
什么是生成器?
builder_1 = (handle_i_result for i in range(start,end,step)) # 定义一个生成器
builder_1 = (i*2 for i in range(0,10)) builder_1.__next__() # 生成第1元素 builder_1.__next__() # 生成第2个元素
-- 坑:只记住当前位置,只有__next__() 去取值,只能取下一个值 -- py2中为next()方法
还有其他的生成器?
-- 函数也可以做生成器
- 斐波那契数列 除了第 1 和第 2 个数,其他数都是前两个数相加和
[1,1,2,3,5,8,13 , ......]
#!/usr/bin/python3
def fib(max_1):
n, a, b = 0, 0, 1
while n < max_1:
yield b
a, b = b, a+b
n += 1
if __name__ == '__main__':
get_number = 30 # 想获得多少个斐波拉契数
try:
fib_1 = fib(20)
for i in range(get_number):
print(fib_1.__next__())
except:
print("取的位数大于生成的个数,嘻嘻")
# 通过yield 执行从函数中跳出来了,再通过__next__方法重新回到函数,yield把函数变成器,
# 定义了20个长度斐波那契数列,如果__next__取的值多了,就会出现异常
python_14_生成器的更多相关文章
- 介绍一款原创的四则运算算式生成器:CalculateIt2
家里小朋友读一年级了,最近每天都有一些10以内的加减法口算练习,作为程序员爸爸,自然也是想办法能够偷懒,让电脑出题,给小朋友做些练习.于是,自己在业余时间开发了一个四则运算算式生成器,名为:Calcu ...
- 每天一个设计模式-7 生成器模式(Builder)
每天一个设计模式-7 生成器模式(Builder) 一.实际问题 在讨论工厂方法模式的时候,提到了一个导出数据的应用框架,但是并没有涉及到导出数据的具体实现,这次通过生成器模式来简单实现导出成文本,X ...
- Objective-C 生成器模式 -- 简单实用和说明
1.生成器模式的定义 将一个复杂的对象的构件与它的表示分离,使得同样的构建过程可以创建不同的表示 2.生成器模式的UML Builder :生成器接口,定义创建一个Product各个部件的操作 Con ...
- 构建ASP.NET MVC4+EF5+EasyUI+Unity2.x注入的后台管理系统(25)-权限管理系统-系统管理员(附生成器)
系列目录 这一节我们要着手建立系统管理员表,但发布之前,我先发布一个代码生成器给大家先用着. 这个生成器是为这个项目而生的,理论不能用于其他项目,而且写得比较潦草,但能用 下载地址 有兴趣要生成器源码 ...
- Python(四)装饰器、迭代器&生成器、re正则表达式、字符串格式化
本章内容: 装饰器 迭代器 & 生成器 re 正则表达式 字符串格式化 装饰器 装饰器是一个很著名的设计模式,经常被用于有切面需求的场景,较为经典的有插入日志.性能测试.事务处理等.装饰器是解 ...
- ES6笔记(5)-- Generator生成器函数
系列文章 -- ES6笔记系列 接触过Ajax请求的会遇到过异步调用的问题,为了保证调用顺序的正确性,一般我们会在回调函数中调用,也有用到一些新的解决方案如Promise相关的技术. 在异步编程中,还 ...
- C#/ASP.NET完善的DBHelper,配套Model生成器
支持Oracle.MSSQL.MySQL.SQLite四种数据库,支持事务,支持对象关系映射:已在多个项目中实际使用. 没有语法糖,学习成本几乎为0,拿来即用. DBHelper类完整代码: usin ...
- Python 生成器与迭代器 yield 案例分析
前几天刚开始看 Python ,后因为项目突然到来,导致Python的学习搁置了几天.然后今天看回Python 发现 Yield 这个忽然想不起是干嘛用的了(所以,好记性不如烂笔头.).然后只能 花点 ...
- Mockjs,模拟数据生成器
(推荐使用)Mock.js是一款模拟数据生成器,旨在帮助前端攻城师独立于后端进行开发,帮助编写单元测试. 提供了以下模拟功能: 1. 根据数据模板生成模拟数据. 2. 模拟Ajax请求,生成并返回模拟 ...
随机推荐
- Python:名片管理系统
字符串和列表学完, 自己试着写了一个非常简单的名片管理系统, 新萌尝试, 大佬们不要喷, 修改名片的功能我偷了个懒, 因为我不知道怎么通过定义下标,然后通过下标来修改列表内的字符串 我的思路是,把用户 ...
- Redis学习笔记(三)Redis支持的5种数据类型的总结
继续Redis学习笔记(二)来说说剩余的三种数据类型. 三.列表类型(List) 1.介绍 列表类型可以存储一个有序的字符串列表,常用的操作是向列表两端添加元素,或者获得列表的一段片段.列表类型内部是 ...
- 模拟uClinux系统调用
这篇文章原来放在CU上的,现在挪过来了.CU上设置不可见了. 1. 目标 这里主要是实验一下uclinux的系统调用. 2. 环境 OS :vmware + red ...
- .net4.5中HttpClient使用注意点
.net4.5中的HttpClinet是个非常强大的类,但是在最近实际项目运用中发现了些很有意思的事情. 起初我是这样用的: using (var client = new HttpClient()) ...
- centos7配置阿里云yum源
1)下载repo文件 wget http://mirrors.aliyun.com/repo/Centos-7.repo 2)备份并替换系统的repo文件 cp Centos-7.repo /etc/ ...
- WebPack错误集
webpack-dev-server跨域设置反向代理出现404错误 问题栈 分析解决 看到404后,再次看了下启动服务配置文件,估计是pathRewrite这个没起作用; //代理服务器 const ...
- 从浏览器多进程到JS单线程,JS运行机制的一次系统梳理
前言 见解有限,如有描述不当之处,请帮忙及时指出,如有错误,会及时修正. ----------超长文+多图预警,需要花费不少时间.---------- 如果看完本文后,还对进程线程傻傻分不清,不清楚浏 ...
- HDU 3377 Plan
Problem Description One day, Resty comes to an incredible world to seek Eve -- The origin of life. L ...
- 洛谷 P1219 八皇后【经典DFS,温习搜索】
P1219 八皇后 题目描述 检查一个如下的6 x 6的跳棋棋盘,有六个棋子被放置在棋盘上,使得每行.每列有且只有一个,每条对角线(包括两条主对角线的所有平行线)上至多有一个棋子. 上面的布局可以用序 ...
- tree(并查集)
tree Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others)Total Submis ...