当前位置: 首页 > news >正文

天津百度网站快速优化军事最新消息新闻

天津百度网站快速优化,军事最新消息新闻,青岛关键词优化排名,滕州盛扬网络公司网站建设推广一、生成器 1. 生成器的定义 把所需要值得计算方法储存起来,不会先直接生成数值,而是等到什么时候使用什么时候生成,每次生成一个,减少计算机占用内存空间2. 生成器的创建方式 第一种只要把一个列表生成式的 [ ] 改成 ( )ret (n 1 for n in range(0,10)) # 返回值是生成了一个… 一、生成器 1. 生成器的定义 把所需要值得计算方法储存起来,不会先直接生成数值,而是等到什么时候使用什么时候生成,每次生成一个,减少计算机占用内存空间2. 生成器的创建方式 第一种只要把一个列表生成式的 [ ] 改成 ( )ret (n 1 for n in range(0,10)) # 返回值是生成了一个生成器对象genexpr储存在16进制的地址中generator object genexpr at 0x7f909f4be150 # 如果调用次数超过生成器内值的总数量,会报错第二种方法使用yield创建生成器 只要在一个函数中存在至少一个yield关键字,该函数就不是普通函数,是一个生成器返回一个对象,需要使用变量接收生成器可以用for进行遍历得到所有的值 # 定义一个斐波那契数列的生成器 def creatnum():print(-----start------)a,b 0,1for i in range(5):print(----1-----)# 每次执行函数都会停在此处,并将b值返回yield bprint(----2-----)a,b b,abprint(----3-----)print(-----stop-----)f creatnum() print(next(f)) print(next(f)) print(next(f)) print(next(f)) print(next(f))打印结果-----start------ ----1----- 1 ----2----- ----3----- ----1----- 1 ----2----- ----3----- ----1----- 2 ----2----- ----3----- ----1----- 3 ----2----- ----3----- ----1----- 5 3. 启动生成器的方法 第一种:next(生成器的名称)第二种:# 生成器第一次调用时尽量不要使用send,非要使用必须用send(None) send()方法二、迭代器 可迭代数据类型(具有可迭代功能) 把可以通过for...in...这类语句迭代读取一条数据供我们使用的对象称之为可迭代对象(Iterable) 例如:列表,元组,字典,集合等数据类型,但他们不是可迭代对象generator(生成器) yield列表生成器生成器都是可迭代对象 如何判断一个对象是不是有可迭代功能 from collections import Iterator # 列表是可迭代的 result isinstance([1,2], Iterable) print(result) # isinstance函数会返回一个bool值 True为可迭代,反之False将具有迭代功能的数据类型转化为可迭代器 可以被next()调用并不断返回下一个值的对象称之为迭代器Iterator 迭代器的判断方式 from collections import Iterator # 列表是可迭代对象 # isinstance函数会返回一个bool值 True为迭代器,反之False result isinstance([1,2], Iterator) print(result) 可迭代对象的本质 我们分析对可迭代对象进行迭代使用的过程发现每迭代一次即在for...in...中每循环一次都会返回对象中的下一条数据一直向后读取数据直到迭代了所有数据后结束。那么在这个过程中就应该有一个“人”去记录每次访问到了第几条数据以便每次迭代都可以返回下一条数据。我们把这个能帮助我们进行数据迭代的“人”称为迭代器(Iterator)。 可迭代对象的本质就是可以向我们提供一个这样的中间“人”即迭代器帮助我们对其进行迭代遍历使用。 可迭代对象通过__iter__方法向我们提供一个迭代器我们在迭代一个可迭代对象的时候实际上就是先获取该对象提供的一个迭代器然后通过这个迭代器来依次获取对象中的每一个数据. 那么也就是说一个具备了__iter__方法的对象就是一个可迭代对象。 from collections import Iterable # 使用isinstance() 函数检测某个对象是否是一个可迭代的对象class MyClass(object):# 可迭代对象的本质是类中是否定义了 __iter__() 方法def __iter__(self):return selfc1 MyClass() # 对象c1不是可迭代对象 result isinstance(c1, Iterable) print(result)举例说明迭代器本质原理 比如数学中有个著名的斐波拉契数列Fibonacci数列中第一个数为0第二个数为1其后的每一个数都可由前两个数相加得到 0, 1, 1, 2, 3, 5, 8, 13, 21, 34, ... 现在我们想要通过for...in...循环来遍历迭代斐波那契数列中的前n个数。那么这个斐波那契数列我们就可以用迭代器来实现每次迭代都通过数学计算来生成下一个数。 class Fibonacci():def __init__(self, num):# 通过构造方法保存num到类的成员属性中self.num num# 定义变量保存斐波那契数列前两个值self.a 0self.b 1# 记录当前的变量值self.current_index 0def __iter__(self):# 返回迭代器因自身就是迭代器故可以返回自己return selfdef __next__(self):# 判断是否生成完毕if self.current_index self.num:# 返回result self.a# 交换两个变量值self.a, self.b self.b, self.aself.bself.current_index 1return resultelse:# 停止迭代raise StopIterationif __name__ __main__:# 创建迭代器fib_iterator Fibonacci(5)# 使用迭代器输出斐波那契数列值for value in fib_iterator:print(value, end )   转载于:https://www.cnblogs.com/yanguhung/p/10145767.html
http://www.pierceye.com/news/646407/

相关文章:

  • 南宁手机建站公司常德网站开发服务
  • 智能锁东莞网站建设php网站开发需要学什么软件
  • 扒网站样式中国搜索网站排名
  • 网站空间和云服务器建设建材网站费用
  • 公司网站 正式上线wordpress 移动端不显示
  • 旅行网站排名前十名网站检测报告哪里做
  • 随州做网站wordpress 显示评论内容
  • 网站建设时间计划表非常赚又一个wordpress站点
  • 苏州网站小程序app开发公司wordpress如何上传文件大小
  • 同仁行业网站建设报价免费ui网站
  • 网站打开速度慢wordpress开发者选项怎么打开
  • 免费网站代理访问网站 营销型
  • 甘特图模板关于网站建设永嘉移动网站建设公司
  • 网站建设服务协议书做面包有哪些网站知乎
  • 网站建设评比标准建盏茶杯知识
  • 商城网站建设教学电子商务的就业方向
  • 做网站必要性江苏华江建设集团网站
  • 网站建设丿金手指排名9如何百度搜到网站
  • 南昌商城网站建设央企网站群建设中标公告
  • 湖北建设监理协会网站网页游戏排行榜开服时间
  • 中国空间站图片竞价账户托管公司哪家好
  • 湖南省金力电力建设有限公司 网站广州市建设局官方网站
  • 比价网站源码免费域名领取
  • 温州做网站费用怎么推广自己的偏方
  • 鞍山建站wordpress侧边浮动
  • 江西网站优化临海外发加工网
  • 机械做网站好处无锡网络推广服务
  • 电信网站备案管理系统外贸网站推广的方法
  • 什么网站上公司的评价最客观需要做网站建设和推广的行业
  • 百度人工服务24小时电话四川seo技术培训