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

网站 建设设计广州楼市最新消息

网站 建设设计,广州楼市最新消息,东莞家具饰品东莞网站建设,wordpress get cat我们将要来学习python的重要概念迭代和迭代器#xff0c;通过简单实用的例子如列表迭代器和xrange。可迭代一个对象#xff0c;物理或者虚拟存储的序列。list#xff0c;tuple#xff0c;strins#xff0c;dicttionary#xff0c;set以及生成器对象都是可迭代的#xff…我们将要来学习python的重要概念迭代和迭代器通过简单实用的例子如列表迭代器和xrange。可迭代一个对象物理或者虚拟存储的序列。listtuplestrinsdicttionaryset以及生成器对象都是可迭代的整型数是不可迭代的。如果你不确定哪个可迭代哪个不可以你需要用python内建的iter()来帮忙。 iter([1,2,3]) iter({1:2, 2:4}) iter(1234)Traceback (most recent call last):File , line 1, in iter(1234)TypeError: int object is not iterableiter()为list返回了listiterator对象为dictionary返回了dictionary-keyiterator对象。类似对其他可迭代类型也会返回迭代器对象。iter()用在自定义的类型会怎样呢我们先自己定义一个String类class String(object):def __init__(self, val):self.val valdef __str__(self):return self.valst String(sample string)那么st是可迭代的吗 iter(st)TypeError: String object is not iterable你可能会有几个问题要问怎么让自定义的类型可迭代iter()究竟做了些什么让我们补充String类来找找答案class String(object):def __init__(self, val):self.val valdef __str__(self):return self.valdef __iter__(self):print This is __iter__ method of String classreturn iter(self.val) #self.val is python string so iter() will return its iterator st String(Sample String) iter(st)This is __iter__ method of String class在String类中需要一个’__iter__’方法把String类型变成可迭代的这就是说’iter’内部调用了’iterable.__iter__()’别急不是只有增加’__iter()’方法这一种途径class String(object):def __init__(self, val):self.val valdef __str__(self):return self.valdef __getitem__(self, index):return self.val[index] st String(Sample String) iter(st)‘itr’也会调用’iterable.__getitem__()’所以我们用’__getitem__’方法让String类型可迭代。如果在String类中同时使用’__iter__()’和’__getitem__()’,就只有’__iter__’会起作用。自动迭代for循环会自动迭代for x in iterable:print x我们可以不用for循环来实现吗def iterate_while(iterable):index 0while(i len(iterable)):print iterable[i]i 1这样做对list和string是管用的但对dictionary不会奏效所以这绝对不是python式的迭代也肯定不能模拟for循环的功能。我们先看迭代器等下回再过头来。迭代器关于迭代器先说几条………..1. 迭代器对象在迭代过程中会会产生可迭代的值next()或者__next()__是迭代器用来产生下一个值的方法。2. 它会在迭代结束后发出StopIteration异常。3. iter()函数返回迭代器对象4. 如果iter()函数被用在迭代器对象它会返回对象本身我们试一试模仿for循环def simulate_for_loop(iterable):it iter(iterable)while(True):try:print next(it)except StopIteration:break simulate_for_loop([23,12,34,56])23123456前面我们看过了iterable类我们知道iter会返回迭代器对象。现在我们试着理解迭代器类的设计。class Iterator:def __init__(self, iterable)self.iterable iterable..def __iter__(self): #iter should return self if called on iteratorreturn selfdef next(self): #Use __next__() in python 3.xif condition: #it should raise StopIteration exception if no next element is left to returnraise StopIteration我们学了够多的迭代和迭代器在python程序中不会用到比这更深的了。但是为了学习的目的我们就到这儿。。。。欢迎加入我的QQ群923414804与我一起学习群里有我学习过程中整理的大量学习资料。加群即可免费获取列表迭代器你可能会在面试中写这个所以打起精神来注意了class list_iter(object):def __init__(self, list_data):self.list_data list_dataself.index 0def __iter__(self):return selfdef next(self): #Use __next__ in python 3.xif self.index len(self.list_data):val self.list_data[self.index]self.index 1return valelse:raise StopIteration()我们来用list_iter自己定义一个列表迭代器class List(object):def __init__(self, val):self.val valdef __iter__(self):return list_iter(self.val) ls List([1,2,34]) it iter(ls) next(it)1 next(it)2 next(it)34 next(it)Traceback (most recent call last):File , line 1, in next(it)File , line 13, in nextraise StopIteration()StopIterationxrange从一个问题开始——xrange是迭代还是迭代器我们来看看 x xrange(10) type(x)几个关键点1. iter(xrange(num))应该被支持2. 如果iter(xrange(num))返回同样的对象(xrange类型)那xrange就是迭代器3. 如果iter(xrange(num))返回一个迭代器对象那xrange就是迭代 iter(xrange(10))它返回了rangeiterator所以我们完全可以叫它迭代器。让我们用最少的xrange函数实现自己的xrangexrange_iteratorclass xrange_iter(object):def __init__(self, num):self.num numself.start 0def __iter__(self):return selfdef next(self):if self.start self.num:val self.startself.start 1return valelse:raise StopIteration()my xrangeclass my_xrange(object):def __init__(self, num):self.num numdef __iter__(self):return xrange_iter(self.num) for x in my_xrange(10):print x,0 1 2 3 4 5 6 7 8 9我喜欢在这里总结这篇文章欢迎发表评论和疑问。
http://www.zqtcl.cn/news/419272/

相关文章:

  • 网站做简历模板动漫设计专业就业方向
  • 沧州市东光建设局 网站电商网站目录优化
  • 公司网站建设案例教程wordpress word文档
  • 阿里巴巴网站本土化建设wordpress jquery
  • 用asp怎么做网站wordpress怎么查看主题
  • 用自己的电脑建网站兴义网站建设
  • 保定医疗网站建设公司wordpress 视频管理 主题
  • php做网站半成品网页设计作业怎么交
  • 郑州网站建设培训学校公众号投票怎么制作
  • 韩国设计交流网站网站设计网页配色
  • 线上设计师网站网络科技公司排名
  • 安徽建设厅网站网址品牌营销ppt
  • 用iis做的网站怎么更改端口南京汤山建设银行网站
  • 威海哪有网站建设十大网页制作工具
  • 上海专业网站建设公司合肥网站建站
  • 怎样将自己做的网站给别人看做平台网站一般有php还是js
  • 做企业网站一般要多少钱WordPress数据库搜索
  • wordpress建立好的网站app的开发流程是什么
  • 工作室网站WordPress文章图片采集插件
  • 青岛网站开发学校wordpress页面样板
  • 校级特色专业建设网站公司网站建设需要些什么要求
  • 嵌入式开发软件有哪些上海谷歌seo
  • 国际学校网站如何建设wordpress登入可见
  • 如何做好网站内链网站开发平台开发
  • 安徽省建设厅网站怎么进不去2022年国内重要新闻
  • 河北建设机械协会网站wordpress怎么做两个语言网站
  • 美容网站模版在线动画手机网站模板
  • jsp做的婚恋网站在谷歌上做英文网站
  • 北京教育学会网站建设昆明seo公司网站
  • 免费域名试用注册网站google搜索关键词热度