迭代器是基础解析一个可以记住遍历的位置的对象。 迭代器对象从集合的迭代第一个元素开始访问,直到所有的器和元素被访问完结束。迭代器只能往前不会后退。基础解析 语法:next(iterator[,器和 default]) 说明: 函数必须接收一个可迭代对象参数,每次调用的基础解析时候,返回可迭代对象的迭代下一个元素。如果所有元素均已经返回过,器和则抛出StopIteration 异常。基础解析 函数可以接收一个可选的迭代default参数,传入default参数后,器和如果可迭代对象还有元素没有返回,基础解析则依次返回其元素值,迭代如果所有元素已经返回,器和则返回default指定的默认值而不抛出StopIteration 异常。 语法:iter(object[, sentinel]) 说明: 函数功能返回一个可迭代对象。 当第二个参数不提供时,第一个参数必须是一个支持可迭代协议(即实现了__iter__()方法)的集合(字典、集合、不可变集合),或者支持序列协议(即实现了__getitem__()方法,源码下载方法接收一个从0开始的整数参数)的序列(元组、列表、字符串),否则将报错。 当第二个参数sentinel提供时,第一个参数必须是一个可被调用对象。创建的迭代对象,在调用__next__方法的时候会调用这个可被调用对象,当返回值和sentinel值相等时,将抛出StopIteration异常, 终止迭代。 语法:range(start, stop[, step]) 说明: range函数用于生成一个range对象,range类型是一个表示整数范围的类型。 可以直接传入一个结束整数来初始化一个range类型,默认起始值为0(包含0).结束整数可以大于0,也可以小于等于0,但是小于等于0的时候生成的range对象实际是不包含任何元素的。 可以传入一个起始整数和一个结束整数来初始化一个range类型,生成的range类型包含起始整数(包含),和结束整数(不包含)之间的所有整数。 传入了起始整数和结束整数,还可以同时传入一个步进值来初始化一个range类型,生成的range类型包含起始整数(包含),和结束整数(不包含)之间的以步进值筛选后的整数。 初始化range类型时起始整数和结束整数,遵循的是左臂右开原则,即包含起始整数,但不包含结束整数。 range接收的参数都必须是整数,不能是浮点数等其它数据类型。 range实际上是一个不可变的序列类型,可以对它进行取元素、切片等序列操作,但是不能对其中元素修改值。 语法:map(function, iterable, ...) 说明: 函数接受一个函数类型参数、云服务器提供商一个或者多个可迭代对象参数,返回一个可迭代器,此迭代器中每个元素,均是函数参数实例调用可迭代对象后的结果。 当传入多个可迭代对象时,函数的参数必须提供足够多的参数,保证每个可迭代对象同一索引的值均能正确传入函数。 当传入多个可迭代对象时,且它们元素长度不一致时,生成的迭代器只到最短长度。 语法:zip(*iterables) 说明: 函数功能是聚合传入的每个迭代器中相同位置的元素,返回一个新的元组类型迭代器。 如果传入的迭代器长度不一致,最短长度的迭代器迭代结束后停止聚合。 如果只传入一个迭代器,则返回的单个元素元组的迭代器。 如果不传入参数,则返回空的迭代器。 zip(*[iter(s)]*n)等效于调用zip(iter(s),iter(s),...,iter(s))。 语法:filter(function, iterable) 说明: filter函数用于过滤序列。过滤的方式则是采用传入的函数,去循环序列的元素调用,如果函数计算的结果为True则保留元素,否则将舍弃该元素。 当function参数传入None时,序列中的元素值如果为False,也会自动舍弃。 一、迭代NEXT
二、iter
三、RANGE
四、MAP
五、ZIP
六、FILTER
七、LIST类型迭代
1 2 3 4 5 6 7 8 >>> L = [1,2,3,4,5] >>> for i in range(len(L)): >>> L[i] += 10 >>> print(L) [11, 12, 13, 14, 15] >>> L = [x + 10 for x in L] >>> print(L) [21, 22, 23, 24, 25] 八、DICT类型迭代
1 2 3 >>> D = dict(a=1, b=2, ,c=3) >>> for k in sorted(D): print(k, D[k], end=) 1 2 3