• lambda()函数


    lambda 函数完整详解 & 高级用法

    语法:

    lambda [arg1 [,arg2,.....argn]]:expression #[arg…] 是参数列表,expression 是一个参数表达式
    

    特性:

    #匿名
    #输入为参数,输出为expression计算结果
    #拥有自己的命名空间,不能访问参数列表之外或全局命名空间的参数
    

    lambda常见用法:

    1、将lambda函数赋值给一个变量,通过这个变量间接调用该lambda函数

    add = lambda x, y: x+y 
    add(1, 2)   #结果为3
    

    2、将lambda函数赋值给其他函数,从而将其他函数用该lambda函数替换

    time.sleep=lambda x: None # 这样,在后续代码中调用time库的sleep函数将不会执行原有的功能。
    time.sleep(3)
    

    lambda高级用法:

    将lambda函数作为参数传递给其他函数

    1、map()函数 :根据提供的函数对指定序列做映射

    '''
    语法: 
        map(function, iterable, ...)
    返回:
        python 2.x 返回列表
        Python 3.x 返回迭代器
    '''
    map(lambda x: x ** 2, [1, 2, 3, 4, 5])
    # 结果:[1, 4, 9, 16, 25]
    

    2、reduce() 函数:对参数序列中元素进行累积

    '''
    语法:
    reduce(function, iterable[, initializer])
    参数:
    function  ----> 函数,有两个参数
    iterable   ----> 可迭代对象
    initializer ----> 可选,初始参数
    返回值:
    返回函数计算结果。
    '''
    def add(x, y):            
        return x + y
    reduce(add, [1, 3, 5, 7, 9])    # 计算列表元素和:1+3+5+7+9
    # 结果:25
    

    3、sorted() 函数:对所有可迭代的对象进行排序操作

    '''
    sort与sorted区别:
    1、sort 是 list 的一个方法,而 sorted 可以对所有可迭代的对象进行排序操作。
    2、list 的 sort 方法返回的是原列表排序后的列表,无返回值;而内建函数 sorted 方法返回的是一个新的 list
    语法:
    sorted(iterable[, cmp[, key[, reverse]]])
    参数说明:
    iterable  可迭代对象。
    cmp       比较的函数,这个具有两个参数,参数的值都是从可迭代对象中取出,此函数必须遵守的规则为,大于返回1,小于返回-1,等于返回0。
    key       迭代对象中的排序元素
    reverse   排序规则,reverse = True 降序 , reverse = False 升序(默认)
    '''
    # ===========匿名函数用法:===========
    L=[('b',2),('a',1),('c',3),('d',4)]
    # 1、利用参数 cmp 排序
    sorted(L, cmp=lambda x,y:cmp(x[1],y[1]))
    # 结果:
    [('a', 1), ('b', 2), ('c', 3), ('d', 4)]
    
    # 2、利用参数 key 排序
    sorted(L, key=lambda x:x[1])
    # 结果:
    [('a', 1), ('b', 2), ('c', 3), ('d', 4)]
    

    4、filter()函数:用于过滤序列,过滤掉不符合条件的元素,返回由符合条件元素组成的新列表。

    '''
    语法:
    filter(function, iterable)
    参数:
    function       判断函数
    iterable       可迭代对象
    返回值:
    Pyhton2.7 返回列表,Python3.x 返回迭代器对象,具体内容可以查看:Python3 filter()函数
    '''
    newlist = filter(lambda x: x % 3 == 0, [1, 2, 3])
    print(list(newlist))
    # 结果: [3]
  • 相关阅读:
    iOS静态库的制作
    iOS视频硬件编解码H264
    cocoapods私有库创建
    Mac OS 下基于XAMPP的Phabricator 安装
    OpenGL01(你好,窗口)
    GPUImage类注解
    cocoapods公有库创建
    GCD-调度组
    对初级程序员的思考
    Swift学习(4懒加载、计算型属性、反射机制)
  • 原文地址:https://www.cnblogs.com/txdblog/p/15904498.html
Copyright © 2020-2023  润新知