当前位置: 首页 > 后端技术 > Python

python迭代器和生成器的区别

时间:2023-03-26 19:21:34 Python

1.通用点生成器是一种特殊的迭代器2.区别a.从语法上讲,生成器是以函数的形式调用yield或()创建的。迭代器可以通过iter()内置函数b来创建。在用法上,生成器调用next()函数或者for循环,所有的过程都被执行,而迭代器的返回值在next()函数或者for循环的调用中,所有的值都返回with没有其他过程或动作。Python可迭代对象、迭代器和生成器的区别iter()函数和next()函数iter()函数用于生成迭代器。next()返回迭代器的下一项。next()函数将与生成迭代器的iter()函数一起使用。如果迭代时不使用for循环语句,那么就得调用iter()函数In[1]:lst=[1,2,3,4]In[2]:it=iter(lst)In[3]:next(it)Out[3]:1In[4]:next(it)Out[4]:2In[5]:next(it)Out[5]:3In[6]:next(it)Out[6]:4In[7]:next(it)----------------------------------------------------------------------------StopIterationTraceback(最近的calllast)in--->1next(it)StopIteration:迭代操作可以在类的内置方法__iter__()中实现。yield关键字。具有yield的函数是生成器。它不同于普通的函数。生成一个生成器看起来像一个函数调用,但在调用next()之前不会执行任何函数代码(next()将在for循环中自动调用)。虽然执行流程还是按照函数的流程执行,但是每执行一条yield语句就会中断,返回一个迭代值,下次执行从下一条yield语句开始继续执行。好像一个函数在正常执行的时候被yield打断了几次,每次打断都会通过yield返回当前的迭代值。您可以使用for循环对其进行迭代或使用其他接受可迭代对象的函数(如sum()、list()等)在[2]中:deffrange(start,stop,increment):...:x=开始。..:whilex

最新推荐
猜你喜欢