当前位置: 代码迷 >> 综合 >> python复习 12/9---迭代器(未完待续)
  详细解决方案

python复习 12/9---迭代器(未完待续)

热度:2   发布时间:2023-12-13 22:31:38.0

迭代器

迭代器对象从集合的第一个元素开始访问,直到所有的元素被访问完结束。迭代器只能往前不会后退。

迭代器有两个基本的方法:iter() 和 next()。

#迭代器
list1=["abc",123,467]
it=iter(list1)
#一次迭代
#print(next(it))
#循环迭代
for x in it:print(x)

还可以使用while迭代,需要 try,except

import sys         # 引入 sys 模块list=[1,2,3,4]
it = iter(list)    # 创建迭代器对象while True:try:print (next(it))except StopIteration:sys.exit()

自定义迭代器

class MyNumbers:def __iter__(self):self.a = 1return selfdef __next__(self):x = self.aself.a += 1return xmyclass = MyNumbers()
myiter = iter(myclass)print(next(myiter))
print(next(myiter))
print(next(myiter))
print(next(myiter))
print(next(myiter))

停止迭代

class MyNumbers:def __iter__(self):self.a = 1return selfdef __next__(self):if self.a <= 20:x = self.aself.a += 1return xelse:raise StopIterationmyclass = MyNumbers()
myiter = iter(myclass)for x in myiter:print(x)

生成器

见期末复习代码