""" 1.什么是迭代器: 迭代器是访问集合元素的一种方式,迭代器只能往前不能后退 字符串、元组、列表都可以生成迭代器 迭代器的两个基本方法iter()、next() 2.什么是生成器: 函数中包含yield,这样的函数就叫做生成器 生成器是返回迭代器的函数,生成器就是迭代器 生成器运行时遇到yield就会暂停并保存当前所有的运行信息 返回yield的迭代器,并在下一次迭代遇到next()的时候从当前位置继续执行 """ import sys list1 = [1,2,3,4,5] it = iter(list1) #创建迭代对象 try: print(next(it)) print(next(it)) print(next(it)) print(next(it)) print(next(it)) print(next(it)) except StopIteration as e: print("已经迭代完毕") 结果:1 2 3 4 5 def fibonacci(n): """生成器""" a,b,counter = 0,1,0 while True: if (counter>n): return yield a # a=0 a,b = b,a+b # 第一次迭代 a=1 counter += 1 f = fibonacci(10) #f是迭代器对象 #第一次遇到yield a=0 返回a的值 while True: try: print(next(f),end=" ") #第一次遍历执行 next(f) 返回值 a=0 except StopIteration as e: sys.exit() 结果:0 1 1 2 3 5 8 13 21 34 55
python生成器和迭代器
最新推荐文章于 2024-07-27 12:20:46 发布