生成器、迭代器的区别?
主要区别在于实现方式和特点
生成器:是一种特殊的迭代器,通过函数实现,并使用 yield 语句返回序列中的下一个元素,每次调用yield 语句都会返回序列中下一个元素,并会在函数中记录当前状态,以便在下一次调用时继续返回下一个元素。
迭代器:是一种访问序列元素的方式,通过 iter() 函数 将一个可迭代对象转化为一个迭代对象,并使用 next() 函数返回序列中下一个元素, 每次调用 next() 函数都会返回序列中的下一个元素,直到序列耗尽时抛出 StopIteration 异常。
总结:迭代器是一种基本访问序列元素的机制。而生成器是一种基于函数的惰性计算机制,能高效的实现序列操作。