美文网首页
python3迭代器

python3迭代器

作者: abrila | 来源:发表于2019-02-26 14:06 被阅读0次

可迭代对象:实现了__iter__()方法的对象,它的__iter__()方法可以返回一个迭代器对象
迭代器对象:实现了__next__()方法的对象,它的__iter__()方法可以返回迭代器对象本身
比如列表就是一个可迭代对象

from collections import Iterable, Iterator
l = [1,2,3,4,5]
print(type(l))
print(isinstance(l,Iterable))
print(isinstance(l,Iterator))
print(dir(l))

结果是列表是一个可迭代的对象,它有__iter__()方法,但是它不是一个迭代器

<class 'list'>
True
False
['__add__', '__class__', '__contains__', '__delattr__', '__delitem__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__getitem__', '__gt__', '__hash__', '__iadd__', '__imul__', '__init__', '__init_subclass__', '__iter__', '__le__', '__len__', '__lt__', '__mul__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__reversed__', '__rmul__', '__setattr__', '__setitem__', '__sizeof__', '__str__', '__subclasshook__', 'append', 'clear', 'copy', 'count', 'extend', 'index', 'insert', 'pop', 'remove', 'reverse', 'sort']

__iter__()可以返回一个迭代器对象,这里列表调用这个方法,返回一个迭代器对象

from collections import Iterable, Iterator
l = [1,2,3,4,5]
l = l.__iter__()
print(isinstance(l,Iterator))
print(dir(l))
print(next(l))
print(l.__next__())

迭代器有__next__()方法

True
['__class__', '__delattr__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__gt__', '__hash__', '__init__', '__init_subclass__', '__iter__', '__le__', '__length_hint__', '__lt__', '__ne__', '__new__', '__next__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__setstate__', '__sizeof__', '__str__', '__subclasshook__']
1
2

for循环遍历迭代器实际上是通过调用迭代器__next__方法实现的
一个对象只要实现了__iter__()__next__()方法就是一个迭代器

相关文章

  • Python3简明教程五

    这部分主要说明Python3的迭代器、生成器、装饰器等相关知识。 来源:实验楼Python3简明教程 1. 迭代器...

  • python 教程笔记day8

    Python3 迭代器与生成器

  • Python map函数

    python3中返回迭代器: 函数map lambda map

  • Python3 迭代器与生成器

    Python3 迭代器与生成器 迭代器 迭代是Python最强大的功能之一,是访问集合元素的一种方式。迭代器是一个...

  • python 迭代器&生成器

    python补充学习 iter迭代器 参考菜鸟教程 https://www.runoob.com/python3/...

  • Python3迭代器

    原文:https://pyzh.readthedocs.io/en/latest/the-python-yield...

  • python3迭代器

    可迭代对象:实现了__iter__()方法的对象,它的__iter__()方法可以返回一个迭代器对象迭代器对象:实...

  • 4. Python3 中的生成器

    我们在上一个博客Python3 迭代器中说明了如何通过类的方式产生可迭代数据(__next__和__init__)...

  • python装饰器

    在python3中 迭代器 生成器 装饰器 理解比较难 1、装饰器本质上是一个python函数,它可以让其他函数在...

  • Python itertools

    Python的内置库itertools是专门提供迭代器(iterator)和相关函数的库,虽然说Python3里面...

网友评论

      本文标题:python3迭代器

      本文链接:https://www.haomeiwen.com/subject/ftbwyqtx.html