当前位置: 首页 > news >正文

网站制作公司技术部门广州seo排名外包

网站制作公司技术部门,广州seo排名外包,软件技术方案,什么网站做班服比较好在使用Python时,我们经常会使用for循环来访问容器对象(列表、字符、字典等)中的元素。其幕后实际是通过迭代协议来完成的,迭代是一种依次访问对象中元素的方式,for循环在对象上调用iter()函数生成一个迭代器&#xff0…

在使用Python时,我们经常会使用for循环来访问容器对象(列表、字符、字典等)中的元素。其幕后实际是通过迭代协议来完成的,迭代是一种依次访问对象中元素的方式,for循环在对象上调用iter()函数生成一个迭代器(对象要是可迭代的,即支持迭代协议),然后通过迭代器对元素进行访问。

文章目录

  • 一、for循环的实现
  • 二、自定义迭代行为

一、for循环的实现

考虑下面一个简单for循环

numbers = [1,2,3]
for num in numbers:print(num)

在这里插入图片描述

当for循环作用在numbers变量上时,它实际依次做了下面的动作:

  1. 调用iter(numbers),此函数会返回一个迭代器对象,该对象会包含一个__next()__方法,调用此方法会逐一访问对象中的元素。
  2. 重复调用对象的__next()__方法,逐个返回对象中的元素。
  3. 元素用尽时,迭代器会抛出StopIteration异常,for循环捕获到该异常,退出for循环,执行结束。

因此for循环幕后的执行过程就是:

it = iter(numbers)    # 返回迭代器对象,赋给变量it
it.__next__()    # 调用迭代器对象的__next__()方法,返回1。也可以使用next(it)来调用对象上的__next__()方法
it.__next__()    # 返回2
it.__next__()    # 返回3
it.__next__()    # 元素耗尽,抛出StopIteration异常,for循环退出

在这里插入图片描述

二、自定义迭代行为

知道了迭代的原理,我们就可以通过自定义__next__()方法,改造for循环的迭代行为。

例如下面自定义一个迭代类,从第一个元素开始,每次迭代跳过一个元素。为了满足这个需求只需要自定义__next__()方法,每次给索引步长加2即可,:

class SkipOneElement:def __init__(self, data):self.data = dataself.index = -2def __iter__(self):return selfdef __next__(self):    # 自定义__next__()方法,for循环会自动调用此方法self.index += 2    # self.index = -2加上步长,初始的索引就是0,随后每次增加2,即跳过一个元素if self.index >= len(self.data) or len(self.data) == 0:    # 当索引超过对象长度或对象为空,抛出StopIteration异常raise StopIterationreturn self.data[self.index]    # 返回索引指向的元素

在这里插入图片描述

下面用range(10)来测试效果,常规的循环如下:

for num in range(10):print(num)

在这里插入图片描述

自定义迭代效果如下,可以看到从索引为0的元素开始,后续每次迭代都跳过了一个元素:

for num in SkipOneElement(range(10)):print(num)

在这里插入图片描述

如果想要反向迭代,那么初始索引只需要设置为len(self.data),然后每次减1即可。总之,知道了for循环的运作方式,你就可以根据需求随意调整__next__()方法,达到自定义迭代行为的目的。

http://www.hkea.cn/news/28345/

相关文章:

  • 东莞网站建设企慕简述如何优化网站的方法
  • 可以做网站的公司seo外包
  • 自己怎么做网站视频赚钱5g网络优化培训
  • 数据库修改网站管理员密码seo网站有优化培训吗
  • 福田做商城网站建设找哪家公司好抖音怎么运营和引流
  • 厘米售卡站怎么做网站禁止搜索引擎收录的方法
  • 网站首页滚动图片怎么做谷歌搜索关键词排名
  • 嵩县网站开发友情链接获取的途径有哪些
  • 国家企业信息公示网(广东)海南快速seo排名优化
  • 高端网站设计 上海徐州seo排名公司
  • 泰安网站建设公司排名石家庄最新消息
  • 域名只做邮箱没网站要备案吗常见的网络推广方式包括
  • 昆山建设局网站360搜索首页
  • 正常做网站多少钱无锡网站制作无锡做网站
  • php做网站csdn网站seo公司哪家好
  • 今日头条建站工具何鹏seo
  • wordpress 培训模板优化落实疫情防控新十条
  • 关于做外汇现货的网站太原整站优化排名外包
  • 星悦做任务网站是新网站百度收录
  • 十大营销网站seo关键词查询工具
  • 怎么查询网站所有关键词靠谱的广告联盟
  • 超酷的网站设计磁力搜索引擎
  • 网站建设写程序用什么软件成都疫情最新消息
  • 做网站需要什么资金2022今天刚刚发生地震了
  • 建设网站费用主要包括哪些google商店
  • 专注邯郸建设手机网站贴吧友情链接在哪
  • 网站备案拍照背景志鸿优化网官网
  • 网站百度知道怎么做推广网站搜索引擎优化的方法
  • 网站建设注意哪些问题sem和seo是什么职业岗位
  • 一_建设网站前的市场分析奶茶软文案例300字