python中迭代器与生成器的区别-创新互联

python中迭代器与生成器的区别?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。

成都创新互联公司服务项目包括新区网站建设、新区网站制作、新区网页制作以及新区网络营销策划等。多年来,我们专注于互联网行业,利用自身积累的技术优势、行业经验、深度合作伙伴关系等,向广大中小型企业、政府机构等提供互联网行业的解决方案,新区网站推广取得了明显的社会效益与经济效益。目前,我们服务的客户以成都为中心已经辐射到新区省份的部分城市,未来相信会继续扩大服务区域并继续获得客户的支持与信任!

迭代器

我们先从迭代器开始入手,迭代器并不是Python独有的概念,在C++和Java当中都有iterator的概念,两者的使用也都差不多。迭代器主要解决了一个问题,在一个复杂场景下,获取数据怎么尽可能简便。

我们来假设一个场景,假设我们从某个数据源获取了一批数据。然后我们需要调用前一万条生成一个结果,得到结果之后,我们要将剩下的数据交给另一个调用方去处理。这个过程看起来非常平常,但是隐藏了两个问题,第一个问题是如果我们能保证第一次处理的时候,每次都是使用一万条还好说,如果我们使用的条数是一个动态的值呢?显然,我们需要一个变量来记录我们究竟用了多少条数据,和这批数据的状态。其次,如果这个数据量很大会存在一个数据传输的问题。我们每次都要将一大批数据传来传去,显然会消耗很多资源。

还有一个场景是如果我们开发的是一个比较复杂的数据结构,比如一棵多叉树,下游想要遍历它的时候,必须要了解它的实现原理才行。这显然也不太友好。

迭代器的出现正是针对以上这些问题,它的含义也很简单,有点像是我们遍历链表的时候用到的cur的指针。永远指向当前的位置,永远知道下一个位置在哪里。

容器迭代器

我们先从简单的元素迭代器开始了解它的用途,我们都知道Python当中经典的几个容器:list, tupledict。它们都是一个可迭代对象,我们可以直接使用关键字iter获取一个对应的迭代器。

我们来看一个例子:

arr = [1, 3, 4, 5, 9]

it = iter(arr)

print(next(it))
print(next(it))

网页题目:python中迭代器与生成器的区别-创新互联
标题URL:https://www.cdcxhl.com/article30/ceeepo.html

成都网站建设公司_创新互联,为您提供网页设计公司品牌网站建设动态网站网站设计网站内链响应式网站

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联

手机网站建设