欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 科技 > 能源 > python 可迭代类型

python 可迭代类型

2024/10/24 19:19:45 来源:https://blog.csdn.net/qq_65307874/article/details/141438561  浏览:    关键词:python 可迭代类型

1、可迭代对象

        可迭代对象是Python中一个核心的概念,它指的是可以for循环遍历的对象。几乎所有的Python集合类型(如列表、元组、字典和集合)都是可迭代的、迭代器、生成器。

2、迭代器

        迭代器是遵循迭代器协议的对象,它允许我们逐个访问集合中的元素,而不需要一次性加载整个集合到内存中。迭代器对象从集合的第一个元素开始访问,直到所有的元素被访问完结束。迭代器只能往前不会后退。

在类中实现两个方法 __iter__()__next__() 迭代器
class MyDatas:def __init__(self, num):self.data = [i for i in range(1, num + 1)]self.current = 0def __iter__(self):return selfdef __next__(self):if self.current < len(self.data):result = self.data[self.current]self.current += 1return resultelse:raise IndexErrormd = MyDatas(5)print(isinstance(md, Iterable), isinstance(md, Iterator))
while True:try:print(next(md))except IndexError as e:print()break

 

3、生成器

        生成器是一种特殊的迭代器,它使用yield关键字来产生一个值,然后挂起函数的执行,直到下一次迭代器的调用。

def my_fun():yield 1yield 2yield 4yield 6return 100r = my_fun()while True:try:print(next(r))except StopIteration as e:print("结束", e)break

结语 

        在某些情况下,使用生成器和迭代器可以显著提高程序的性能,尤其是在处理大量数据时。例如,生成器可以按需产生数据,而不是一次性加载所有数据到内存中,增强了代码的可读性和可维护性。

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com