zoukankan      html  css  js  c++  java
  • Python的lambda

    if else 可以用简单的三元运算符表示

    if 1 == 1:
        name = 'wupeiqi'
    else:
        name = 'alex'
    

    --》

    name = 'wupeiqi' if 1 == 1 else 'alex'

    对于函数也可以lambda来简化表达

    # ###################### 普通函数 ######################
    # 定义函数(普通方式)
    def func(arg):
        return arg + 1
      
    # 执行函数
    result = func(123)
      
    # ###################### lambda ######################
      
    # 定义函数(lambda表达式)
    my_lambda = lambda arg : arg + 1
      
    # 执行函数
    result = my_lambda(123)  

    内置函数

    1,map

    遍历序列,对序列中每个元素进行操作,最终获取新的序列。

     

    li = [11, 22, 33]
    new_list1 = map(lambda a: a + 100, li)
    print new_list1
    

    [111, 122, 133]

    li = [11, 22, 33]
    sl = [1, 2, 3]
    new_list = map(lambda a, b: 2*a + b, li, sl)
    print new_list
    

    [23, 46, 69]

     2,filter

    对于序列中的元素进行筛选,最终获取符合条件的序列

     

    li = [11, 22, 33]
    new_list2 = filter(lambda arg: arg >= 22, li)
    print new_list2
    

    [22, 33]

    3,reduce

    对于序列内所有元素进行累计操作

     

    li = [11, 22, 33]
    sl = [1, 2, 3]
    result = reduce(lambda arg1, arg2: arg1 + arg2, li)
    print result
    # reduce的第一个参数,函数必须要有两个参数
    # reduce的第二个参数,要循环的序列
    # reduce的第三个参数,初始值

    匿名函数lambda作为返回值返回时输出值的问题

    def xc(x):
        return lambda x:x*x
    print xc(4)(4)
    
    def build(x,y):
        return lambda x,y: xx+yy
    print build(4,5)(4,5)
    
    def build():
        return lambda x,y: xx+yy
    print build()(5,5)
    
    pl=lambda x:x*x
    print pl(3)
    print xc(4)
    
    def build(x,y):
        return lambda : xx+yy
    print build(4,5)()
    
    def build(x,y,z):
        return lambda :xx+yy+z
    print build(4,5,9)()
    
    def build():
        return lambda x,y,z:xx+yy+z
    print build()(4,5,9)
    
  • 相关阅读:
    selenium.环境搭建
    python.Pycham自动添加作者、时间等信息
    selenium.获取元素属性的方法(get_attribute )
    python.UnitTest框架(用例执行、结果断言、HTML报告)
    $F()函数 prototype.js
    基于索引的SQL语句优化和导入导出Oracle表
    C#,多线程死锁很容易哦
    .net 绘图控件Netron 3
    .net中的ReaderWriterLock
    在.net 2.0程序中比较XML
  • 原文地址:https://www.cnblogs.com/huxinga/p/8150631.html
Copyright © 2011-2022 走看看