python

    xiaoxiao2025-07-20  10

    高阶函数

    可以把函数作为参数传递的函数叫高阶函数

    sorted,reduce,filter,map

    #高阶函数:能够把函数当成参数传递的就是高阶函数 (sorted map reduce filter )

    sorted(iterable,reverse=False,key=函数)

    功能: 排序 运行原理:把可迭代数据里面的数据,一个一个拿到函数里面进行处理,按照return的结果进行排序,得到一个新的列表 参数: iterable:可迭代数据(容器类型数据,range对象,迭代器) reverse(可选) :是否反转 默认False 不反转 , True 反转 key(可选) :函数 自定义 或 内置函数 返回值:排序后的结果(新的列表)

    map(func,iterable)

    map() 函数是python内置的高阶函数,对传入的可迭代对象里的每一个元素进行处理,返回一个新的处理之后的迭代器

    功能: 把可迭代数据里面的数据,一个一个拿到函数里面进行处理,得到一个迭代器并返回。 参数: func 函数 iterable 可迭代的数据(容器类型数据,range对象,迭代器) 返回值: 迭代器

    reduce(func,iterable)

    reduce() 函数在 python 2 是内置函数, 从python 3 开始移到了 functools 模块。 使用方法:from functools import reduce

    功能: 一次性从iterable拿出两个值,扔到func里面做运算,得出一个计算结果 然后,把这个计算结果和iterable里面的第三个数据,继续扔到func里面做运算,以此类推 即:不停地从iterable里面拿数据,直到运算结束为止 参数: func : 内置函数 或 自定义函数 iterable:可迭代的数据 (容器类型数据,range对象,迭代器) 返回值: 最终的结果

    filter(func, iterable)

    功能: 过滤数据 (return True 保留数据,return False 舍去数据) 接收两个参数,第一个为函数,第二个为可迭代对象,可迭代对象的每个元素作为参数传递给函数进行判断, 然后返回 True 或 False,最后将返回 True 的元素放到迭代器中。 参数: func : 判断函数 iterable: 可迭代的数据(容器类型数据,range对象,迭代器) 返回值: 迭代器 # sorted()排序 # 只有一个参数的情况下,对参数进行从小到大排序,形成一个新的列表 # reverse = False:默认从小到大排序, = True:从大到小排序 list1 = (3,2,4,6,1) res = sorted(list1,reverse = True) print(res) list1 = (3,2,4,6,1,7) ####### 1,0,0,0,1 # [3,1,7,2,4,6] res = sorted(list1,reverse = True,key=lambda x:x % 2) print(res) def func(num): return num % 2 list1 = [3,2,4,6,1,7,9,5] res = sorted(list1,key=func) print(res) # [3,1,7,9,5,2,4,6] 从大到小排序 # [2,4,6,3,1,7,9,5] 从小到大排序 # map(func,iterable) #数据分析阶段常用,数据的处理 # from collections import Iterator def ji(num): return num ** num tuple1 = (3,2,4,1) res = map(ji,tuple1) print(list(res)) # reduce(函数,可迭代的对象) from functools import reduce def func(m,n): return m * n # range(1,6) 1,2,3,4,5 res = reduce(func,range(1,6)) print(res) # filter(func, iterable) def func(num): return num % 3 list1 = [1,2,3,4,5] res = filter(func,list1) print(list(res))
    最新回复(0)