欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Python的iterator和generator(迭代器与生成器)相关概念简述

程序员文章站 2024-02-12 12:41:16
...

Python的iterator和generator相关概念简述

前言

前段时间重新捡起了python,很多之前接触过的概念已经很陌生了,特别是一些具有明显Python风格的内容一度让我晕头转向,本文就python之中的迭代器(iterator),生成器(generator)和其他一些相关的概念做了一番整理。

迭代器(iterator)

首先,迭代器是一个用来访问 可遍历的对象 的对象。可遍历的对象有很多,最普遍的就是list(列表)。迭代器的原生形式就是for循环。
不使用for循环而使用迭代器的原因是t优化代码,提升效率,节约资源。迭代器对象从被遍历者的第一个元素开始访问,直到所有的元素被访问完结束。迭代器只往前不后退。

#可遍历的对象
iterable = [1,3,5,7,9]
# 生成对应的迭代器
iterator = iter(iterable)
# 访问可遍历对象的下一个元素
# 如果访问到尽头会抛出异常,否则可以一直访问下去
while True:
	try:
		print(next(iterator))
	except:
		pass

迭代器只有两个基本方法 iter() 和 next(),相应地,若要使一个自定义的类的对象可以被迭代器遍历,则需要实现 __iter() 和 __next() 这两个特殊方法(接口)。
且,迭代器本身也是一个可遍历对象,可以被其他迭代器遍历(因为包含有__iter() 接口)。

class MyIterator:
	def __init__():
		pass
	def __iter__(self):
		pass
	def __next__(self):
		pass

生成器(generator)

同理,使用生成器的原因是为了t优化代码,提升效率,节约资源
(施工中)

相关标签: Python随笔