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__()) #返回迭代器中的下一个元素
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!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 类(数据流)