Python基础语法:迭代器
一、自定义迭代器 iter
迭代器可以通过next()函数获取下一个元素,也可以通过for来循环。字符串,列表或元组对象都可通过iter()函数创建迭代器。也可以自定义迭代器,自定义接迭代器需要实现__iter__和__next__方法。
lst=[1,2,3]it=iter(lst)# 1print(next(it))# list[i]=2# list[i]=3foriinit:print(f"list[i]={i}")""" 自定义迭代器 __iter__(self): 返回迭代器本身,并初始化值 __next__(self):返回下一次迭代的值 StopIteration:迭代总有终止的时候,迭代到最后再迭代报异常 """classMyIter:def__iter__(self):self.value=1returnselfdef__next__(self):ifself.value<=5:current_value=self.value self.value+=1returncurrent_valueelse:# 必须写结束迭代的条件,如果不写for循环也拿不到值raiseStopIteration myIter=MyIter()it=iter(myIter)# next(it)= 1print(f"next(it)=",next(it))# next(it)= 2print(f"next(it)=",next(it))# 循环迭代器: 会重新初始化执行__iter__# x=1# x=2# x=3# x=4# x=5forxinit:print(f"x={x}")