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)
    
  • 相关阅读:
    SGU 495 Kids and Prizes 概率DP 或 数学推理
    poj 2799 IP Networks 模拟 位运算
    uva 202 Repeating Decimals 模拟
    poj 3158 Kickdown 字符串匹配?
    uva 1595 Symmetry 暴力
    uva 201 Squares 暴力
    uva 1594 Ducci Sequence 哈希
    uva 1368 DNA Consensus String 字符串
    数字、字符串、列表的常用操作
    if条件判断 流程控制
  • 原文地址:https://www.cnblogs.com/huxinga/p/8150631.html
Copyright © 2011-2022 走看看