美文网首页
13 函数的进阶[python基础]

13 函数的进阶[python基础]

作者: 乱弹琴给 | 来源:发表于2020-01-01 19:28 被阅读0次

    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基础]

          本文链接:https://www.haomeiwen.com/subject/zbsgoctx.html