python--迭代器

在Python中数据类型list、tuple、str、dict、set、f=open()、range()、enumerate均可通过for循环进行遍历,通过for循环的这种遍历就称为迭代

以上几种类型都是可迭代对象(Iterable) 

协议:

含有__iter__函数就是可迭代的

 含有__iter__函数和__next__函数就是迭代器

for循环其实就是使用迭代器

复制代码
from collections.abc import Iterable
from collections.abc import Iterator

class A:
    def __iter__(self):pass
    #def __next__(self):pass

a=A()
print(isinstance(a,Iterable))  #判断a是不是迭代器
print(isinstance(a,Iterator))  #判断a是否可迭代
复制代码

 

 

 

 

复制代码
print(dir([]))   #返回列表的内置方法
print("__iter__" in dir([]))  #__iter__函数是否在列表的内置函数中
#返回True  说明是可迭代的,能用for进行遍历的

ret=[].__iter__()   #返回迭代器
print(ret)      #<list_iterator object at 0x00000151E2A48288>
print(dir(ret))   #返回迭代器内置函数
#['__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__']
复制代码

 

 

list1=[10,20,30]
print(list1.__iter__().__length_hint__())  #返回迭代器中元素的个数
#3

 

list1=[10,40,30,20,50,90]
print(list1.__iter__().__next__())  #返回迭代器中的下一个元素

 

 

视频教程 

 

 

 

 

 

 

 

posted @   天子骄龙  阅读(5)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
历史上的今天:
2022-09-25 我的正版游戏
2021-09-25 opencv目录
2020-09-25 qt5--自定义事件与事件的发送
2020-09-25 qt5--键盘事件
2019-09-25 qt5---QTextStream 类(文本流)和 QDataStream 类(数据流)
点击右上角即可分享
微信分享提示

目录导航