温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

Python迭代器与生成器如何实现

发布时间:2021-12-20 15:50:00 来源:亿速云 阅读:160 作者:iii 栏目:大数据

这篇文章主要讲解了“Python迭代器与生成器如何实现”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Python迭代器与生成器如何实现”吧!

迭代

迭代是访问集合元素的一种方式。迭代器是一个可以记住遍历的位置的对象。迭代器对象从集合的第一个元素开始访问,直到所有的元素被访问完结束。迭代器只能往前不会后退。

可迭代对象

以直接作用于 for 循环的数据类型有以下几种:

一类是集合数据类型,如 list 、 tuple 、 dict 、 set 、 str 等;

一类是 generator ,包括生成器和带yield 的generator function。

这些可以直接作用于 for 循环的对象统称为可迭代对象: Iterable 。

判断可迭代对象

isinstance

使用内置函数 isinstance() 判断其是否为 Iterable 的对象

from collections import Iterablestr = "Hello Python"print(isinstance(str,Iterable))
dir

通过内置函数 dir() 获取这个对象所有方法,检查是否有 '__iter__'

str = 'Hello Python' 
print('__iter__' in dir(str))

迭代器

可以被next()函数调用并不断返回下一个值的对象称为迭代器:Iterator。

iter()函数

生成器都是 Iterator 对象,但 list 、 dict 、 str 虽然是 Iterable ,却不是 Iterator 。把 list 、 dict 、 str 等 Iterable 变成 Iterator 可以使用 iter() 函数:

生成器

创建迭代器另外一种方式就是使用生成器,生成器是一个函数,这个函数的特殊之处在于它的 return 语句被 yield 语句替代。

for i in range(1, 10, 1):    print(i)def customRange(star, stop, step):    x = star    while x < stop:        yield x        x += stepfor i in customRange(1, 10, 0.5):    print(i)

生成器表达式(Generator Expression)

成器表达式的写法如下:

生成器 = (针对项的操作 for 项 in 可迭代对象)

感谢各位的阅读,以上就是“Python迭代器与生成器如何实现”的内容了,经过本文的学习后,相信大家对Python迭代器与生成器如何实现这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是亿速云,小编将为大家推送更多相关知识点的文章,欢迎关注!

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI