迭代器 高阶函数(map,filter,reduce,sorted,)
-迭代器
:能被next调用,并不断返回下一个值的对象,叫做迭代器
概念:迭代器指的是迭代取值的工具,迭代是一个重复的过程,每次重复都是基于上一次的结果而继续,单纯的重复不是迭代
特征:不依赖索引,通过next指针迭代所有数据,一次只取一个,可以大大节省空间,迭代无限量的数据
如何定义一个迭代器
1)iter(可迭代对象)
2)可迭代对象.__iter__()
如何判断一个迭代器
如果内置成员中 含有__iter__和__next__两个方法,就可以判断是一个迭代器
如何调用一个迭代器
迭代器通过next方法调用是,是单向不可逆的过程
1)next (迭代器)
2) 迭代器.__next__()
2.通过for循环,遍历迭代器
3.for 和next配合调用迭代器
重置迭代器
it = iter(setvar)
5)使用Iterator he Iterable 来判断是否是迭代器
''' 需要导入模块
Iterator 迭代器类型 Iterable 可迭代对象
'''
高阶函数:能够把函数当作参数喜欢滴的就是高阶函数 map filter reduce sorted
map
'''
map (func,iterable)
功能:把iterable里面的数据一个一个拿出来,放到func函数中进行处理,把处理的结果扔到迭代器中,返回迭代器
参数:
func 自定义函数 或者内置函数
iterable 可迭代对象(容器类型数据 range 迭代器 )
返回值: 迭代器
'''
filter
'''
filter(func,iterable)
功能:
在自定义的函数中,过滤数据
如果返回True 代表保留数据
如果返回False 代表舍弃该数据
参数:
func 自定义函数
iterable 可迭代数据(容器类型数据 range对象 迭代器 )
返回值:
迭代器
'''
reduce
'''
reduce(func,iterable)
功能: 一次性从iterable当中拿出2个值,扔到func函数中处理
把运算的结果在和iterable的第三个值继续扔到func中做运算
...以此类推
最后返回计算的结果
参数:
func 自定义函数
iterable 可迭代数据(容器类型数据 range对象 迭代器)
返回值:
最后计算的结果
'''
sorted
'''
sorted (iterable,reverse=False,key = 函数)
功能: 排序
参数:
iterable 可迭代数据(容器类型数据 range对象 迭代器)
reverse 代表是否倒序 reverse = True 代表倒序 从大到小 reverse =False 代表正序,从小到大
key 自定义函数或内置函数
返回值:
排序后的列表
'''
sort 基于原有的列表进行排序,只限定列表类型
sorted 所有的容器类型都能排,返回一个全新的列表(推荐使用)