零基础学python生成器generater全解

2025-03-21 20:07:51

1、from collections import Iterable, Iterator # 引入包# 将列表生成式的方括号改成圆括号,返回结果就不是列表了,而是一个生成器。g = (i for i in range(10))print(g)

零基础学python生成器generater全解

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

零基础学python生成器generater全解

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

零基础学python生成器generater全解

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

零基础学python生成器generater全解

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

零基础学python生成器generater全解

6、# 利用函数创建生成器def back_genarator(n): print(111111) for i in range(n+1): print(2222222) yield i print(3333333)

零基础学python生成器generater全解

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

零基础学python生成器generater全解
声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
猜你喜欢