python初学一(函数三内置函数与高阶函数)

十一、内置函数:

                   详情见  常见系统函数

十二、常用的高阶函数(map、filter、reduce):

                     这三个高阶函数常用于数字的加减合并。配合匿名函数lambda表达式。

              1、特性:

                              将后面序列中每一个元素按照前面函数的规则处理。

                    

              2、实例:

①map函数的映射规则:

list2 = list(map(lambda list1,list3:list1+list3,[1,2,3],[4,5,6]))
list3 = list(map(lambda list1,list3:list1+list3,[[1,2,3]],[[4,5,6]]))
print(list2)
print(list3)

        过程:

          结果:

                                   

②filter

list1 = [1,2,3,4,5,6,7]
list_xin = list(filter(lambda x:x%2 == 0,list1))
print(list_xin)        # [2, 4, 6]

③reduce:reduce 需要导入模块 functools

import functools
sum = functools.reduce(lambda x,y:x+y,range(1,101))   1-100的和,注意这里不需要加 list。 
print(sum)


理解:
                 每次相加赋值给x,然后y不停取值。   x += y

                                   

                                        

3、利用map、filter、reduce求数字的加减:

                

import functools
# num = functools.reduce(lambda x,y:x*y,range(1,6))        求阶乘的函数
# print(num)
list1 = list(map(lambda a:functools.reduce(lambda x,y:x*y,range(1,a+1)),range(1,6)))      高阶函数的嵌套   求1-5阶乘的列表
print(list1)
num1 = functools.reduce(lambda x,y:x+y,list1)        reduce 合并相加
print(num1)
#

十三、python的闭包:

         1、特性:

                如果在一个内部函数,对外部作用域(非全局作用域)的变量进行引用,那么内部函数FuncY()就被认为是闭包(closure)。

def funcx():
    a = 1
    def funcy():
        print(a)
    return funcy        # 与递归不同的是这里没有运行,这是返回函数名。
funcx()()

猜你喜欢

转载自blog.csdn.net/qq_16555103/article/details/83929609
今日推荐