Python 迭代,for...in遍历,迭代原理与应用示例
本文实例讲述了Python迭代,for...in遍历,迭代原理与应用。分享给大家供大家参考,具体如下:
迭代是访问集合元素的一种方式。什么时候访问元素,什么时候再迭代,比一次性取出集合中的所有元素要节约内存。特别是访问大的集合时,用迭代的方式访问,比一次性把集合都读到内存要节省资源。
demo.py(迭代,遍历):
importtime fromcollectionsimportIterable fromcollectionsimportIterator #有__iter__方法的类是Iterable(可迭代的)。 #既有__iter__方法又有__next__方法是Iterator(迭代器)。 classClassmate(object): def__init__(self): self.names=list() self.current_num=0 defadd(self,name): self.names.append(name) def__iter__(self): """Iterable对象必须实现__iter__方法""" returnself#__iter__方法必须返回一个Iterator(既有__iter__方法,又有__next__方法) #__next__的返回值就是for循环遍历出的变量值 def__next__(self): ifself.current_num运行结果:
老王
王二
张三demo.py(迭代的应用):
li=list(可迭代对象) #将可迭代对象转换成list类型。底层就是通过迭代实现的。
print(li)
tp=tuple(可迭代对象) #将可迭代对象转换成tuple类型。
print(tp)
#for...in可迭代对象 #for遍历也是通过迭代实现的如上例改写如下:
示例1:
classClassmate(object): def__init__(self): self.names=list() self.current_num=0 defadd(self,name): self.names.append(name) def__iter__(self): """Iterable对象必须实现__iter__方法""" returnself#__iter__方法必须返回一个Iterator(既有__iter__方法,又有__next__方法) #__next__的返回值就是for循环遍历出的变量值 def__next__(self): ifself.current_num输出:
['老王','王二','张三']
示例2:
classClassmate(object): def__init__(self): self.names=list() self.current_num=0 defadd(self,name): self.names.append(name) def__iter__(self): """Iterable对象必须实现__iter__方法""" returnself#__iter__方法必须返回一个Iterator(既有__iter__方法,又有__next__方法) #__next__的返回值就是for循环遍历出的变量值 def__next__(self): ifself.current_num输出:
('老王','王二','张三')
更多关于Python相关内容可查看本站专题:《Python数据结构与算法教程》、《PythonSocket编程技巧总结》、《Python函数使用技巧总结》、《Python字符串操作技巧汇总》及《Python入门与进阶经典教程》
希望本文所述对大家Python程序设计有所帮助。