• python第l六天,lambda表达式学习,涉及filter及Map。


      在python中lambda表达式可以作为匿名函数来使用,举一个简单的栗子:

      以前我们写两个数相加的函数需要 

    #以前我们写两个数相加的函数,需要这样写
    >>> def sum(x,y):
        return x+y
    
    >>> sum(1,2)
    3
    >>> 
    
    #而学了lambda之后我们再写这个函数可以这么写
    >>> x=lambda x,y:x+y
    >>> x(1,2)
    3
    >>> 

      python对我们以后的编程的意义,使用Python写一些脚本的时候,使用匿名函数就可以省下定义函数的过程,比如我们只写一个简单的脚本来管理服务器时间,我们就不需要专门定义一个函数,然后再写一个调用,使用匿名函数就可以使代码变得更加精简。

      对于一些比较抽象的并且整个程序执行下来只需要调用一两次,有时候给函数起名称也是很头疼的事情,使用匿名函数就不需要再考虑这个问题。

      简化代码的可读性,普通函数经常会跳到开头的def定义部分,使用匿名函数可以省去这个步骤。

      再练习几个玩玩

    '''
    def fun_A(x,y=3)
        return x*y
    把这个方法用lambda表达式写
    '''
    fun_A = lambda x,y=3:x*y
    
    print(fun_A(2))
    print(fun_A(2,6))
    '''
    lambda x:x if x%2 else None
    变为函数
    '''
    def odd(x):
        if x%2:
            return x
        else:
            return None
    
    print(odd(9))

      filter,过滤器,可以帮我们过滤掉一些我们不想要的东西

    '''
    利用filter和lambda表达式快速求出100以内的3的倍数
    '''
        
    fun_B = filter(lambda x:not(x%3),range(0,100))
    print(list(fun_B))
    '''
    使用zip可以将两个数组以元组方式绑定到一起
    list(zip([1,2,3,4,5],[6,7,8,9,10]))
    [(1,6),(2,7),(3,8),(4,9),(5,10)]
    '''
    print(list(map(lambda x,y:[x,y],(1,2,3,4,5),(6,7,8,9,10))))
    def make_repeat(n):
        return lambda x:x*n
    #闭包函数,下面这种调用相当于给n赋值了 2
    double = make_repeat(2)
    
    #调用闭包,并且给闭包中的x赋值8
    
    print(double(8))
    
    print(double('i love you '))

    结果为:

    6
    12
    ------------------------------
    9
    ------------------------------
    [0, 3, 6, 9, 12, 15, 18, 21, 24, 27, 30, 33, 36, 39, 42, 45, 48, 51, 54, 57, 60, 63, 66, 69, 72, 75, 78, 81, 84, 87, 90, 93, 96, 99]
    ------------------------------
    [[1, 6], [2, 7], [3, 8], [4, 9], [5, 10]]
    ----------------
    16
    i love you i love you 
    >>> 
  • 相关阅读:
    揭示短线操作宝贵心得
    MFC常用类、成员函数、数组类、Cstring类、CTime类、CPoint类
    A股和B股的区别
    大盘指数的定义及其计算方法
    追涨杀跌法
    成交量变化八规律(旧文有韵)
    蓝筹股、红筹股的含义
    对上市公司进行综合分析
    socket异步笔记
    从WEB SERVICE 上返回大数据量的DATASET
  • 原文地址:https://www.cnblogs.com/pengpengzhang/p/8635320.html
Copyright © 2020-2023  润新知