python迭代器和生成器区别有哪些

  介绍

小编给大家分享一下python迭代器和生成器区别有哪些,希望大家阅读完这篇文章后大所收获、下面让我们一起去探讨吧!

<强>迭代器是一个更抽象的概念,任何对象,如果它的类有一方法和iter方法返回自己本身,对于字符串,列表,dict,元组等这类容器对象,使用的循环遍历是很方便的。

 python迭代器和生成器区别有哪些

在后台为语句对容器对象调用iter()函数,iter()是python的内置函数,()会返回一个定义了next()方法的迭代器对象,它在容器中逐个访问容器内元素,next()也是python的内置函数。在没有后续元素时,下一个()会抛出一个抛出StopIteration异常。

#随便定义一个列表   listArray=(1、2、3)   #使用iter()函数   iterName=iter (listArray)   打印(iterName)

<强>生成器(发电机)是创建迭代器的简单而强大的工具。它们写起来就像是正规的函数,只是在需要返回数据的时候使用收益率语句。每次next()被调用时,生成器会返回它脱离的位置(它记忆语句最后一次执行的位置和所有的数据值)

#菲波那切数列   def Fib (max):   n, a, b=0, 0, 1   尽管n & lt;马克斯:   收益率b   a, b=b, a + b   n=n + 1   返回& # 39;亲!没有数据了…& # 39;   #调用方法,生成出10个数来   f=Fib (10)   #使用一个循环捕获最后返回返回的值,保存在异常抛出StopIteration的价值中   而真正的:   试一试:   x=下一个(f)   打印(“f:“, x)   除了抛出StopIteration e:   print(“生成器最后的返回值是:“,e.value)   打破

<>强区别:

生成器能做到迭代器能做的所有的事,而且因为自动创建了iter()和next()方法,生成器显得特别简洁,而且生成器也是高效的,使用生成器表达式取代列表解析可以同时节省内存。除了创建和保存程序状态的自动方法,当发生器终结时,还会自动抛出抛出StopIteration异常。

看完了这篇文章,相信你对python迭代器和生成器区别有哪些有了一定的了解,想了解更多相关知识,欢迎关注行业资讯频道,感谢各位的阅读!

python迭代器和生成器区别有哪些