• python lambda的详细介绍


    lambda 函数,又叫匿名函数。不需要给这个函数命名。

    先看一个简单的栗子:

     (普通的函数)

    1 >>> def f(x):
    2     return x * 2
    3 
    4 >>> print f(3)
    5 6

    用lambda表达式可以表示为

    1 >>> g = lambda x : x* 2
    2 >>> print g(3)
    3 6

    lambda 中,冒号前面是参数,可以多个,用逗号隔开,冒号后面是返回值。

    多个参数的栗子:

    1 >>> g = lambda x ,y : x * y
    2 >>> g(2, 3)
    3 6
    
    >>> g = lambda x ,y = 3 : x * y
    >>> g(4)
    12
    

     

    map() 函数

    map()函数 接受两个参数,一个是函数 ,一个是序列,map将 传入的函数 依次 作用在 序列的每一个元素上面,并返回一个新的list。

    1 >>> print map(lambda x : x*2 , range(6))
    2 [0, 2, 4, 6, 8, 10]

    filter() 函数 过滤

    filter()函数,接受两个参数,一个是函数,一个是序列,返回True和False,根据判断结果,过滤掉不符合条件的元素,返回一个新的list

    1 #删除列表中的偶数
    2 
    3 >>> list =[1, 4, 6, 7, 9, 12, 17]
    4 >>> def odd(x):
    5     return x% 2 == 1
    6 
    7 >>> filter(odd,list)
    8 [1, 7, 9, 17]

    练习题:

    1. 用lambda表达式 将下面的函数转换成匿名函数

      

    1 >>> def fun(x,y= 3):
    2     return x * y
    1 # lambda x,y = 3: x*y

    2.用 filter()和lambda() 快速求出 100 以内的 3的倍数

    1 >>> filter(lambda x :x % 3 == 0 ,range(1,100))
    2 [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]

      

  • 相关阅读:
    Windows控制程序网站带宽及Qos(TOS或DSCP)
    VBA读取、增加自定义和修改文档属性
    使用Bazel构建C/C++项目
    GoogleTest入门
    八卦一下Starlark语言
    混合编译.c/.cpp与.cu文件
    Mac Mojave(10.14.1)执行Matlab的mex报错
    安装和配置bazel
    从44.556677想到的
    Oracle中如何实现Mysql的两表关联update操作
  • 原文地址:https://www.cnblogs.com/jiayou888888/p/7840549.html
Copyright © 2020-2023  润新知