首页 > Python基础教程 > 类特殊成员(属性和方法)
阅读:973
什么是迭代器,Python迭代器及其用法
前面介绍了使用 for 循环遍历列表、元组和字典等,这些对象都是可迭代的,因此它们都属于迭代器。迭代器其实就是一个实现了迭代器协议的容器类对象。
迭代器可以利用 Python 内置的 iter() 函数和一个序列来创建。例如:
Python 也允许我们自定义一个迭代器,只需要实现 __next__() 和 __iter__() 特殊方法即可。例如:
迭代器本身是一个底层的特性和概念,在程序中并不常用,但它为生成器这一更有趣的特性提供了基础。
迭代器基于以下两个方法实现:简单的理解容器,就是用来存放各种元素的,是各种元素的集合。常用的容器包括元组、列表、字典、集合等。
- __next__(self):返回容器的下一个元素。
- __iter__(self):该方法返回一个迭代器(iterator)。
迭代器可以利用 Python 内置的 iter() 函数和一个序列来创建。例如:
# 将列表转换为迭代器 my_iter = iter([2, 'fkit', 4]) # 依次获取迭代器的下一个元素 print(my_iter.__next__()) print(my_iter.__next__()) print(my_iter.__next__()) print(my_iter.__next__())运行结果为:
2
fkit
4
Traceback (most recent call last):
File "C:\Users\mengma\Desktop\demo.py", line 7, in <module>
print(my_iter.__next__())
StopIteration
for i in iter([2, 'fkit', 4]): print(i,end=" ")运行结果为:
2 fkit 4
Python 也允许我们自定义一个迭代器,只需要实现 __next__() 和 __iter__() 特殊方法即可。例如:
class countDown: def __init__(self,step): self.step = step def __next__(self): if self.step <= 0: raise StopIteration self.step -= 1 return self.step def __iter__(self): return self for element in countDown(10): print(element,end=" ")输出结果为:
9 8 7 6 5 4 3 2 1 0
迭代器本身是一个底层的特性和概念,在程序中并不常用,但它为生成器这一更有趣的特性提供了基础。
有关生成器的相关知识,会在后续章节中介绍。
所有教程
- socket
- Python基础教程
- C#教程
- MySQL函数
- MySQL
- C语言入门
- C语言专题
- C语言编译器
- C语言编程实例
- GCC编译器
- 数据结构
- C语言项目案例
- C++教程
- OpenCV
- Qt教程
- Unity 3D教程
- UE4
- STL
- Redis
- Android教程
- JavaScript
- PHP
- Mybatis
- Spring Cloud
- Maven
- vi命令
- Spring Boot
- Spring MVC
- Hibernate
- Linux
- Linux命令
- Shell脚本
- Java教程
- 设计模式
- Spring
- Servlet
- Struts2
- Java Swing
- JSP教程
- CSS教程
- TensorFlow
- 区块链
- Go语言教程
- Docker
- 编程笔记
- 资源下载
- 关于我们
- 汇编语言
- 大数据
- 云计算
- VIP视频