迭代器-用 1、迭代器的概念 1、可迭代对象-iterable str、list、tuple、dict、set、open()、range() 2、可迭代对象的概念: 其数据类型的执行方法中含有__iter__方法的,就是可迭代对象 li1 = [2,3,4] print(‘__iter__‘ in dir(li1)) #True 说明li1-列表是可迭代对象 3、迭代器的概念--iterator 可迭代对象调用__iter__()方法后,生成的对象就是迭代器 例如:it1 = li1.__iter__() #这里的it1就是迭代器 4、迭代器中的方法__next__() 迭代器每调用一次__next__()方法,就取值一个元素,直到取值到最后一个元素后 再次调用__next__()方法,会报错StopIteration 2、迭代器的特点 1、节约内存 2、惰性(只有调用__next__()方法,才会取值一次) 3、只能往前取值,不能后退 3、迭代器的应用 1、for循环的常规写法 for循环的内部原理是通过迭代器实现的 迭代器给所有的可迭代的数据类型提供了一种统一的遍历方式(可迭代协议) li1 = [2,3,4] for i in li1: print(i) else: print(‘循环结束了‘) 2、通过迭代器实现for循环--一步步执行__next__() li1 = [2,3,4] it1 = li1.__iter__() #it1就是生成可迭代对象-列表li1的迭代器-iterator print(it1.__next__()) #2 print(it1.__next__()) #3 print(it1.__next__()) #4 # print(it1.__next__()) #报错 StopIteration 3、通过迭代器实现for循环--通过while循环 li1 = [2,3,4] it1 = li1.__iter__() #it1就是生成可迭代对象-列表li1的迭代器-iterator while 1: try: print(it1.__iter__()) except StopIteration: print("循环结束了") break #别忘记,这里是跳出整个while循环
查看更多关于Python【day 11】迭代器的详细内容...
声明:本文来自网络,不代表【好得很程序员自学网】立场,转载请注明出处:http://www.haodehen.cn/did170778