零基础学python生成器generater全解

 时间:2024-11-07 02:34:29

#generator:生成器,内部保存的并不是像列表一样真实的数据,而是一套算法,依次推导出下一个数据#生成器属于可迭代对象,可以使用for-in遍历。#如果生成器访问到最后一个元素,就不能再继续访问了#生成器会记录自己被访问到哪个数据了。#for-in是从记录的数据开始访问到最后一个数据,next()访问下一个数据

工具/原料

python3.6

pycharm

方法/步骤

1、fromcollectionsimportIterable,Iterator#引入包#将列表生成式的方括号改成圆括号,返回结果就不是列表了,而是一个生成器。g=(iforiinrange(10))print(g)

零基础学python生成器generater全解

2、print(isinstance(g,Iterator))#生成器属于迭代器。print(isinstance(g,Iterable))#生成器属于可迭代对象。print(isinstance('good',Iterator))#字符串等容器属于可迭代对象,但是不属于迭代器。

零基础学python生成器generater全解

3、#生成器每次被访问都会记录自己被访问的位置next(g)#通过next()访问生成器中的下一个元素print(next(g))

零基础学python生成器generater全解

4、#for-in遍历生成器会直接从记录的位置访问到最后foriing:print(i,end='')print()

零基础学python生成器generater全解

5、#next(g)#访问到最后一个,就不能在访问了,否则崩溃g=(iforiinrange(10))#使用next()访问生成器中特定数量的数据#生成器,访问一个加载一个,不访问不加载:俗称懒加载或惰性加载。foriinrange(6):print(next(g))

零基础学python生成器generater全解

6、#利用函数创建生成器defback_genarator(n):print(111111)foriinrange(n+1):print(2222222)yieldiprint(3333333)

零基础学python生成器generater全解

7、#生成器记录的是算法规则,依次加载#调用next()才开始执行生成器内部的代码,每调用一次next,代码会走到yield,将结果抛出,然后代码暂停#如果已经访问到最后一个yield,就代码生成器结束了,不能再次调用next()g=back_genarator(3)print(next(g))print(next(g))

零基础学python生成器generater全解

怎样在tkinter编程中的pack方法中使用fill? 如何设置PyCharm中代码对齐竖线的显示和隐藏 myeclipse配置tomcat总是有问题(放大招) 怎样使用vs新建一个webform项目 使用jQuery插入一个新的div
热门搜索
长城h3报价及图片 七夕浪漫图片 56个民族服饰图片 世界名狗图片大全 微信图片下载