欢迎光临

Python开发生成器和迭代器的区别?

  

  Python启垦 天生器 和迭代器的辨别?迭代器是一个更笼统的观念,所有关于象;迭代器关于象,它在容器中逐一考察容器内元素,next()也是 python 的内置函数。

 

天生器和迭代器的辨别
  迭代器是一个更笼统的观念,所有关于象,假如它的类有 next 方式和iter 方式返回本人自身,关于于 string、list、dict、tuple 等这类容器关于象,运用for轮回遍历是很便利的。在后盾 for 语句关于容器关于象挪用iter()函数,iter()是python的内置函数。iter()会返回一个界说了next()方式的迭代器关于象,它在容器中逐一考察容器内元素,next()也是python的内置函数 。在不后续元素时 ,next()会抛出一StopIteration非常 十分。


  天生器(Generator)是创造迭代器的简略而强盛的东西。它们写起来便像是正轨的函数,不过在须要返回数据的时间运用 yield 语句。


  屡屡next()被挪用时,天生器会返回它摆脱的位子(它回顾语句末尾一次实行的位子和一切的数据值)辨别:天生器能干到迭代器能干的一切事,并且由于自动创造了iter()和next()方式,天生器显得特殊简练,并且天生器也是高效的,运用天生器表白式代替列表领会不妨共季节约内存。除了创造和保留步调状况的自动方式,当爆发器中断时,还会自动抛出 StopIteration 非常 十分。


  术语的阐明:


  1、迭代器协定:关于象须要供给next()方式,它要么返回迭代中的下一项,要么便引起一个StopIteration非常 十分,以中断迭代。


  2、可迭代关于象:实行了迭代器协定关于象。list、tuple、dict都是Iterable(可迭代关于象),但是不是Iterator(迭代器关于象)。但是不妨运用内修函数iter() ,把这些都形成Iterable可迭代器关于象。


  3、for item in Iterable 轮回的实质便是先经过iter()函数获得可迭代关于象Iterable的迭代器,而后关于获得到的迭代器连接挪用next()方式来获得下一个值并将其赋值给item,当碰到StopIteration的非常 十分后轮回中断

关于“ Python开发生成器和迭代器的区别?”的评论:

  • 访客默认头像 访客-ytho 发表于:2020年07月26日 pan styl?ext-align: left;,0200726/bd0110bc80f1
  • 访客默认头像 访客-用户719 发表于:2020年07月26日 迭代器是一—— Python开python 的内置函数。

    &n。

  • 访客默认头像 访客-trin 发表于:2020年07月26日 返回一个,pan>


发表评论

必填

选填

选填

◎欢迎参与讨论,发表不一样的看法,秀出你的风采。