# 迭代器
# 往前不往后
# 集合元素
list0 = [1, 2, 'a']
iter0 = iter(list0)
for x in iter0:
print(x)
iter0 = iter(list0)
while(1):
try:
print(next(iter0))
except:
break
class MyNumbers:
def __iter__(self):
self.a = 1
return self
def __next__(self):
if self.a <= 20:
x = self.a
self.a += 1
return x
else:
raise StopIteration
myclass = MyNumbers()
myiter = iter(myclass)
for x in myiter:
print(x)
# 生成器
# 返回 yield 的值
# 是一个迭代器的函数
def yieldtest(a):
while True:
yield a + 1
a = a + 1
iter0 = yieldtest(0)
print(next(iter0))
print(next(iter0))
print(next(iter0))
def fibo(n):
a, b, count = 0, 1, 0
while True:
if count > n:
return
yield a
a, b = b, a + b
count += 1
iter0 = fibo(10)
while(1):
try:
print(next(iter0), end=" ")
except:
break
python 迭代器和生成器
最新推荐文章于 2024-10-08 19:53:44 发布
本文详细讲解了Python中的迭代器和生成器概念,通过实例展示了如何使用它们遍历集合元素、自定义迭代器类以及生成器函数的用法,包括`list`、`MyNumbers`类、`yield`关键字和斐波那契数列生成器。
摘要由CSDN通过智能技术生成