python中迭代器和生成器的简单介绍
# -*- coding: utf-8 -*- """ 迭代器和生成器 迭代器:类型list、tuple、file、dict的对象有__iter__()方法,标志着它们能够迭代 用__iter__()方法生成迭代对象,然后用__next__()方法访问 生成器:是迭代器,__iter__()和next();针对大数据的时候,Python处理列表时,将全部数据都读入到内存,而 迭代器(生成器是迭代器)的优势就在于只将所需要的读入内存里,因此生成器解析式比列表解析式少占内存 一个简单的生成器my_generator = (x*x for x in range(4)) yield:生成器的标志,yield除了作为生成器的标志之外,还有一个功能就是返回值;作为生成器的函数, 由于有了yield,遇到它则程序挂起 yield和return的区别:return返回后,程序后面的语句不执行,yield返回后,程序挂起,再次调用__next__()时,继续执行后面的语句 """ class MyIter: '''简单的range迭代器实现''' def __init__(self,n): self.i=0 self.n=n def __iter__(self): '''__iter__()是类中的核心,它返回了迭代器本身,实现了__iter__()方法的对象,即意味着其可迭代''' print(