第二十五章 迭代器(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
相关推荐
AmyLin_20012 分钟前
【pdf2md-3:实现揭秘】福昕PDF SDK Python 开发实战:从逐字符提取到 LR 版面分析
开发语言·python·pdf·sdk·markdown·pdf2md
IP老炮不瞎唠9 分钟前
Scrapy 高效采集:优化方案与指南
网络·爬虫·python·scrapy·安全
沪漂阿龙10 分钟前
深入浅出 Pandas apply():从入门到向量化思维
人工智能·python·pandas
我材不敲代码12 分钟前
OpenCV 实战——Python 实现图片人脸检测 + 视频人脸微笑检测
人工智能·python·opencv
七夜zippoe32 分钟前
模型部署优化:ONNX与TensorRT实战——从训练到推理的完整优化链路
人工智能·python·tensorflow·tensorrt·onnx
maxmaxma35 分钟前
ROS2 机器人 少年创客营:Day 7
人工智能·python·机器人·ros2
牢七42 分钟前
jfinal_cms-v5.1.0 白盒 nday
开发语言·python
纤纡.1 小时前
基于 PyTorch 手动实现 CBOW 词向量训练详解
人工智能·pytorch·python·深度学习
词元Max1 小时前
2.5 Python 类型注解与运行时类型检查
开发语言·python
沪漂阿龙1 小时前
深度解析Pandas数据组合:从concat到merge,打通你的数据处理任督二脉
python·数据分析·pandas