重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
这篇文章主要讲解了“Python迭代器与生成器如何实现”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Python迭代器与生成器如何实现”吧!
通江网站制作公司哪家好,找成都创新互联公司!从网页设计、网站建设、微信开发、APP开发、成都响应式网站建设公司等网站项目制作,到程序开发,运营维护。成都创新互联公司于2013年创立到现在10年的时间,我们拥有了丰富的建站经验和运维经验,来保证我们的工作的顺利进行。专注于网站建设就选成都创新互联公司。
迭代是访问集合元素的一种方式。迭代器是一个可以记住遍历的位置的对象。迭代器对象从集合的第一个元素开始访问,直到所有的元素被访问完结束。迭代器只能往前不会后退。
以直接作用于 for 循环的数据类型有以下几种:
一类是集合数据类型,如 list 、 tuple 、 dict 、 set 、 str 等;
一类是 generator ,包括生成器和带yield 的generator function。
这些可以直接作用于 for 循环的对象统称为可迭代对象: Iterable 。
使用内置函数 isinstance()
判断其是否为 Iterable
的对象
from collections import Iterablestr = "Hello Python"print(isinstance(str,Iterable))
通过内置函数 dir()
获取这个对象所有方法,检查是否有 '__iter__'
str = 'Hello Python' print('__iter__' in dir(str))
可以被next()函数调用并不断返回下一个值的对象称为迭代器:Iterator。
生成器都是 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)
成器表达式的写法如下:
生成器 = (针对项的操作 for 项 in 可迭代对象)
感谢各位的阅读,以上就是“Python迭代器与生成器如何实现”的内容了,经过本文的学习后,相信大家对Python迭代器与生成器如何实现这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是创新互联,小编将为大家推送更多相关知识点的文章,欢迎关注!