• lambda函数


    原文地址

    引用图片地址

    1.lambda和内置函数的理解和使用

    lambda匿名函数使用场景:

    常常会想写一个函数,但是这个函数只会被调用一次;

    lambda简单语句构成:

    执行:
    f = lambda a,b:a+b
    f(1,2)
    输出:
    3

    描述:

    f是匿名函数的名称,可以通过f来调用该函数,:左边是参数,可以有多个,右边是表达式或者返回值

    lambda稍微复杂的语句构成:

    执行:
    f1 = lambda a,b,c:a+b if c>0 else a-b
    f1(1,2,1)
    输出:
    3
    -----
    执行:
    f1(1,2,-1)
    输出:
    -1

     

    2.内置函数

    1)map

    map的定义为:map(func, *iterables),第一个参数为映射规则(表达式或函数),第二个参数是需要迭代运算的元组(列表,输入函数后不可变,因此使用元组

     

    执行:
    l1=[1,2,3]
    list(map(lambda x:x+1,l1))
    输出:
    [2,3,4]
    --------
    执行:
    [x+1 for x in l1]
    输出:
      [2,3,4]
    这是列表推导式表达

    下边是加了条件判断(有if,必有else):

    执行:
    list(map(lambda x:x+1 if x > 1 else x,l1))
    输出:
    [1,3,4]
    ---------
    执行:
    [x+1 for x in l1 if x>1]
    输出:
    [3,4]

    2)filter

    指按照某种规则,筛选数据;

    该内置函数的定义为:filter(function or None, iterable)

    执行:
    a = [1,2,3,4,5,6]
    list(filter(lambda x:x>2,a))
    输出:
    [3,4,5,6]
    --------
    执行:
    [x for x in a if x>2]
    输出:
    [3,4,5,6]
    tips::
           还是列表表达式比较好看好懂

    3)reduce

    reduce是对输入列表的所有数据按照给定表达式进行迭代运算;

    reduce(function, sequence[, initial]) -> value

    tips:

    注意的是,使用reduce函数,需要从functools中导入,而map、filter则不需要;

    from functools import reduce
    执行:
    a = [1,2,3,4]
    reduce(lambda x1,x2:x1+x2, a)
    输出:
    10
    执行:
    reduce(lambda x1,x2:x1*x2, a)
    输出:
    24

     

  • 相关阅读:
    android 使用Activity做窗口弹出(模拟Dialog)
    解决ListView 跟ScroolView 共存 listItem.measure(0, 0) 空指针
    基于iview使用jsx扩展成可编辑的表格
    vue token 过期处理
    组件通信 eventtBus
    组件通信 $ref
    组件通信 Provide&&inject
    Vue 生命周期
    layui token 过期 重新登陆
    Python(3) 进制转换
  • 原文地址:https://www.cnblogs.com/spider3658/p/13711643.html
Copyright © 2020-2023  润新知