5.15自用

迭代器 高阶函数(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 所有的容器类型都能排,返回一个全新的列表(推荐使用)


posted @ 2020-05-15 00:34  qeeq  阅读(171)  评论(0编辑  收藏  举报