迭代器
Posted panglinl
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了迭代器相关的知识,希望对你有一定的参考价值。
l=[1,2,3]
#取值方式:索引,for循环
#for i in l:
# print(i)
#list,dic,str,set,tuple,f=open(),range(),enumerate()
print(dir([]))#告诉我列表拥有的所有方法
#带双下划线的方法称之为双下方法,不止一种方法可以调用他
print([1].__add__([2]))#其等同于(print([1]+[2]))
#一般情况下,双下方法并不直接被调用,“可能以另一种方式存在”
#只要是能被for循环的数据类型就一定拥有__iter__方法,只要含有__iter__方法都是可迭代的
#[].__iter__()迭代器-->__next__ #通过next就可以从迭代器中一个一个的取值
#只要含有__iter__方法的都是可迭代的——可迭代协议
#迭代器协议——内部含有__next__和__iter__方法就是迭代器
#可以被for循环的都是可迭代的
#可迭代的内部都有__iter__方法
#只要是迭代器一定可迭代的
#可迭代的.__iter__()就可以得到一个迭代器
#迭代器中的__next__()方法可以一个一个的获取值
#for循环其实就是使用迭代器
#只有可迭代对象的时候才能用for
#当我们遇到一个新对象,不知道他能不能被for循环时,就判断它是否可迭代
#for i in l:
#pass
#执行的步骤
#迭代器的好处:
#从容器类型中一个一个的取值,会把所有的值都取到
#可以节省内存空间
#迭代器并不会在内存中再占用一大块内存,而是随着循环每次生成一个,每次next每个给一个。
以上是关于迭代器的主要内容,如果未能解决你的问题,请参考以下文章