第二十五章 迭代器(Iterator)(Python)

文章目录


前言

迭代器是为了给迭代对象进行迭代使用的,是访问集合元素的一种方式。从集合的第一个元素开始访问,直到所有的元素被访问完结束。迭代器只能往前不会后退。

列表、集合、元组、字典、字符串、都是可迭代对象。如果一个对象拥有_iter方法,其是可迭代对象。

一、什么是迭代器?

迭代器(Iterator)是一种特殊的对象,它可以在遍历时逐个返回元素。迭代器实现了迭代协议,包括两个重要的方法:
iter () 方法:返回迭代器对象自身。
next() 方法:返回迭代器的下一个元素,如果没有元素可供返回,则抛出 StopIteration 异常。

python 复制代码
class Iterator_demo:
    def __iter__(self):
        self.a = 1
        return self

    def __next__(self):
        x = self.a
        self.a += 1
        return x


iter_demo = Iterator_demo()
for _ in iter(iter_demo):
    if _ == 10:  # 迭代9次,否则会一直迭代
        exit()
    else:
        print(_)

二、如何生成迭代器?

python 复制代码
'''
	两个基本的方法:
		iter() 
		next()
'''
it = iter([1, 2, 3, 5])
print(next(it))  # 1
print(next(it))  # 2
print(next(it))  # 3
print(next(it))  # 5

it = iter([1, 2, 3, 5])
for _ in it:
    print(_)  # 1 2 3 5
相关推荐
格鸰爱童话8 分钟前
向AI学习项目技能(六)
java·人工智能·spring boot·python·学习
悟空爬虫-彪哥13 分钟前
VRChat开发环境配置,零基础教程
python
数据知道22 分钟前
《 Claude Code源码分析与实践》专栏目录
python·ai·github·claude code·claw code
曲幽31 分钟前
FastAPI+Vue:文件分片上传+秒传+断点续传,这坑我帮你踩平了!
python·vue·upload·fastapi·web·blob·chunk·spark-md5
石工记1 小时前
Agent 应用与图状态编排框架LangGraph
python·ai编程
XiYang-DING1 小时前
【Java】二叉搜索树(BST)
java·开发语言·python
赵优秀一一1 小时前
FastAPI 核心
linux·python·fastapi
清水白石0081 小时前
向后兼容的工程伦理:Python 开发中“优雅重构”与“责任担当”的平衡之道
开发语言·python·重构
wgzrmlrm741 小时前
mysql如何配置全文索引停用词_mysql ft_stopword_file设置
jvm·数据库·python
徐先生 @_@|||2 小时前
基于Translation插件实现在pycharm本地翻译并阅读英文资料
ide·python·pycharm