迭代器

时间:2021-6-12 作者:qvyue

迭代器就是按照某种特定顺序来遍历某个集合的所有元素;

生成器就是每次调用时生成一个元素,可以通过循环调用来实现遍历所有元素的目的。

如何判断某个对象是否可迭代呢?答案是可以使用collections.Iterable类来判断。如下面的代码所示,列表是可迭代的,整数是不可迭代的,字符串是可迭代的。

from collectionsimport Iterable

print(isinstance([],Iterable))#列表可迭代的,输出结果是True

print(isinstance(12,Iterable))#整数是不可迭代的,输出结果是Fals

print(isinstance(“12”,Iterable))#字符串是可迭代的,输出结果是True

迭代器(Iterator)

它可以作为内置函数next()的参数,每次按照一定顺序得到其中一个元素。但比较有趣的是,列表不是迭代器。同样可以用collections.Iterator类来判断某个对象是否是迭代器。如下面的代码所示,列表和字符串都不是迭代器。

from collectionsimport Iterator

print(isinstance([],Iterator))#列表不是迭代器,输出结果是False

print(isinstance(“abc”,Iterator))#字符串也不是迭代器,输出结果是False

列表可以使用另外一个内置函数iter()来将其转换成Iterator(迭代器)。

迭代器的一个特点是它只能使用一次,从头部走到尾部。如果希望再次走一遍,只能创建一个新的迭代器。

声明:本文内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:qvyue@qq.com 进行举报,并提供相关证据,工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。