迭代器-用总结
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,4]
for i in li1:
print(i)
else:
print(‘循环结束了‘)
2、通过迭代器实现for循环--一步步执行__next__()
li1 = [2,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,4]
it1 = li1.__iter__() #it1就是生成可迭代对象-列表li1的迭代器-iterator
while 1:
try:
print(it1.__iter__())
except stopiteration:
print("循环结束了")
break #别忘记,这里是跳出整个while循环
以上是内存溢出为你收集整理的Python【day 11】迭代器全部内容,希望文章能够帮你解决Python【day 11】迭代器所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)