【Python】迭代器和生成器
2022/4/2 11:49:32
本文主要是介绍【Python】迭代器和生成器,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
迭代器
迭代器对象是一个可以记住遍历的位置的对象
从集合的第一个元素开始访问,直到所有的元素被访问完结束。迭代器只能往前不会后退。
# 创建迭代器对象 迭代内容可为字符串,列表,元组 it = iter([1, 2, 3, 4, 5, 6, 7, 8, 9, 0]) for i in range(5): print("ava", next(it)) for i in range(5): print("bvb", next(it))
# 创建迭代器对象 迭代内容可为字符串,列表,元组 it = iter([1, 2, 3, 4, 5, 6, 7, 8, 9, 0]) while True: try: # 输出迭代器的下一个元素 print(next(it)) # 迭代器结束 退出 except Exception as e: break
迭代类
class MyNumber: def __iter__(self): self.a = 1 return self def __next__(self): x = self.a self.a += 1 return x if __name__ == "__main__": MyClass = MyNumber() myiter = iter(MyClass) print(next(myiter)) print(next(myiter)) print(next(myiter)) print(next(myiter))
生成器
使用了 yield 的函数被称为生成器(generator),调用一个生成器函数,返回的是一个迭代器对象
def fibonacci(n): # 生成器函数 - 斐波那契 a, b, counter = 0, 1, 1 while True: if (counter > n): return # print("a=", a) yield a a, b = b, a + b counter += 1 if __name__ == "__main__": f = fibonacci(10) # f 是一个迭代器,由生成器返回生成 while True: try: print("\n迭代器输出:%s" % f) print(next(f), end=" ") except StopIteration: sys.exit()
执行结果:
这篇关于【Python】迭代器和生成器的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-14获取参数学习:Python编程入门教程
- 2024-11-14Python编程基础入门
- 2024-11-14Python编程入门指南
- 2024-11-13Python基础教程
- 2024-11-12Python编程基础指南
- 2024-11-12Python基础编程教程
- 2024-11-08Python编程基础与实践示例
- 2024-11-07Python编程基础指南
- 2024-11-06Python编程基础入门指南
- 2024-11-06怎么使用python 计算两个GPS的距离功能-icode9专业技术文章分享