13 函数的进阶[python基础]

lambda函数

* 

lambda是一种表达式,创建内嵌的简单匿名函数

filter函数的使用

* 

返回一个列表,其中包含对其执行函数时结果为真的所有元素
*
filter(func,seq)

        //通过参数2给filter函数一组内容,通过参数1把不需要的过滤掉
        def f(n):
            //判断给定的数是不是奇数
            return n % 2 != 0
        
        def use_filer(l):
            //获取指定列表/元组中的奇数
            # rest = filter(lambda n: n % 2 != 0, l)
            //上面的方法是用lambda函数实现,和用一般的函数结果一样,但是节省了部分代码量.
            rest = filter(f,l)
            return rest

        if __name__ == '__main__':
            l = [1,2,3,4,5,6,7,8,9,10,11]
            rest = use_filer(l)
            print(list(rest))

map函数的使用

* 

创建一个列表,其中包含对指定序列包含的项执行指定函数返回的值
*
map(function, sequence,...)

        def pow_number(l):
            //根据给定的列表数据,计算里面每一项的立方
            //l:list/type int类型的列表或者是元组
            //return:原来列表中每一项的立方

        rest_list=[]
        for x in l:
            rest_list.append(x * x * x)
        return rest_list
        //以上为第一种方法

        def f(n):
            //求给定数的立方
            return n * n * n

        def pow_num_use_map(l):
            //使用map函数计算给定列表的每一项立方
            //l:list/type int类型的列表或者是元组
            //return:原来列表中每一项的立方
            return map(f, l)
            //以上为第二种方法用map函数实现

        def pow_num_use_lambda(l):
            //使用map函数\lambda表达式计算给定列表的每一项立方
            //l:list/type int类型的列表或者是元组
            //return:原来列表中每一项的立方
            return map(lambda(n: n * n* n, l))

        if __name__ == '__main__':
            l = [1,2,3,4,5,6,7,,9]
            rest = pow_number(l)
            rest_map = pow_num_use_map(l)
            rest_lambda = pow_num_use_lambda(l)

reduce函数

    ////四种实现方法,根据给定的列表,求里面各个数字的总和
        def get_sum(l):
            //根据给定的列表,求里面各个数字的总和
        rest = 0
        for i in l:
            rest += i
        return rest
     
    //第二种方法
        def get_sum_use_py(l):
            //使用python内的sum()进行求和
            return sum(l)

        //第三种方法
        def f(m,n):
            return m + n

        def get_sum_use_reduce(l):
            return reduce(f,l)
        //第四种方法
        def get_sum_use_lambda(l):
            return reduce(lambda(m,n: m + n, l)

        if __name__ == '__main__':
            l = [1,3,5,6,7,9]
            rest = get_sum(l)
            print(rest)

你可能感兴趣的:(13 函数的进阶[python基础])