精华内容
下载资源
问答
  • Python Lambda函数使用总结详解这篇文章主要介绍了Python Lambda函数使用总结详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下lambda表达式是一种匿名函数,...

    Python Lambda函数使用总结详解

    这篇文章主要介绍了Python Lambda函数使用总结详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下

    lambda表达式是一种匿名函数,对应python中的自定义函数def,是定义某个函数时比较高级的一种写法。作为python初学者,本文整理了lambda的一些基本用法和特点。

    lambda和def的对应关系

    定义func函数,计算给定数x的平方

    1

    2

    def func(x):

    return x*x

    等价于

    1

    func = lambda x: x*x

    其中func是函数名,x是输入参数,x*x是输出结果

    输入参数可以有多个,可以接收不定参数如*args或者**kwargs。

    1

    2

    3

    f = lambda x, *args, para, **kwargs : [args, para, kwargs]

    f(1, 2, 3, para=‘number’, name=‘Jack’, sex=‘male’)

    输出 [(2, 3), ‘number’, {‘name’: ‘Jack’, ‘sex’: ‘male’}]

    有时也可以不指定输入参数,如:

    1

    lambda: random.randn()

    lambda与map(), filter(), reduce()

    lambda表达式返回一个函数,这个函数可以作为其他函数的参数。常用的可以与lambda组合的内置函数有map(), filter(), reduce().

    在处理一个可迭代对象如列表,字典等时,可以用map(lambda, x) 代替 for…in…循环,如:

    1

    2

    3

    4

    5

    lst = [1, 2, 3, 4, 5]

    res = []

    for i in lst:

    a = i*i

    res.append(a)

    等价于

    1

    res = list(map(lambda x:x*x, lst))

    可以看到这里的lambda生成的函数直接作为map函数的function参数,对列表的每一个元素进行平方计算

    同理可以将lambda用于filter进行筛选,或者reduce累积运算:

    1

    2

    3

    4

    5

    from functools import reducelst = [1, 2, 3, 4, 5]f_res = filter(lambda x: x>3, lst)

    r_res = reduce(lambda x, y: x*y, lst)

    print(‘大于3的数字有:’, list(f_res))

    print(‘累乘结果为:’, r_res)

    输出结果:

    大于3的数字有: [4, 5]

    累乘结果为: 120

    lambda与if条件判断

    lambda表达式中可以插入if…else进行条件判断,如

    1

    2

    f = lambda x: ‘even’ if x%2==0 else ‘odd’

    f(3)输出结果 odd

    等价于

    1

    def f(x):

    if x%2==0:

    return ‘even’

    else:

    return ‘odd’

    注意如果在lambda中使用if进行条件判断,则else是必须声明的,否则会引起报错。如果不返回结果可以用 else None 表示。

    if…elif…else的多条件判断也可以用于lambda,但会使得代码过于复杂,所以不推荐。

    lambda在pandas中的使用

    lambda函数常用于DataFrame或者Series对象下的map、apply、transform方法

    1

    2

    3

    import pandas as pd

    df = pd.DataFrame({‘Age’: [22, 21, 22, 21, 20], ‘Score’: [87, 66, 79, 54, 59]})

    df[‘Pass’] = df.apply(lambda x: ‘pass’ if x[1]>=60 else ‘Not pass’, axis=1)

    输出新列 ‘Pass’,根据成绩判断通过与否,输出df后结果为:

    1

    2

    3

    4

    5

    6

    Age Score Pass

    0 22 87 pass

    1 21 66 pass

    2 22 79 pass

    3 21 54 Not pass

    4 20 59 Not pass

    x为DataFrame对象,当参数axis=1时,x[1]等于第二列。

    当用于Series对象时,以上代码等价于:

    1

    df[‘Pass’] = df[‘Score’].apply(lambda x: ‘pass’ if x>60 else ‘Not pass’)

    在pandas中,通过apply,map, transform方法,lambda可以直接应用于Series级别的运算。

    当使用applymap方法时,lambda可以应用于DataFrame级别的运算。

    lamda的优缺点

    lambda的优点:

    不需要定义函数名(匿名函数)

    代码简洁美观

    适用于定义简单的计算

    lambda的缺点:

    只有一个运算式,不适用于复杂的计算

    不够直观,难于理解,增加了维护成本

    展开全文
  • Python lambda函数

    2019-09-06 17:22:05
    2019-9-6Python lambda函数 1、定义 功能:一种快速定义单行的最小函数 2、示例 #一般函数定义 def add1(x,y): return x+y s=add1(3,4) print(s) 7 #使用lambda函数定义 g=lambda x,y:x+y s=g(3,4) print(s) 7...

    2019-9-6Python lambda函数

    1、定义
    功能:一种快速定义单行的最小函数
    2、示例

    #一般函数定义
    def add1(x,y):
        return x+y
    s=add1(3,4)
    print(s)
    

    7

    #使用lambda函数定义
    g=lambda x,y:x+y
    s=g(3,4)
    print(s)
    

    7

    关于lambda的语法

    lambda x,y:x+y
    

    在冒号前是函数参数,冒号后是具体的操作

    3、lambda与def的区别
    ①def创建的方法时有名字的,而lambda没有
    ②lambda只是一个表达式,而def是一个语句
    ③像if、for、print等语句不能用于lambda中,而def可以
    ④lambda一般用于定义简单的函数,而def可以定义复杂的函数
    ⑤lambda函数不能共享给别的程序调用,def可以
    ⑥lambda的冒号后面的表达式只有一个,而def有多个
    ⑦lambda会返回一个函数对象,但这个对象不会赋给一个标识符,而def则会把函数对象赋值给一个变量

    展开全文
  • 该函数就是Python中的Lambda函数,下面就来为大家解析pythonlambda函数,三个常用的高阶函数。为什么要使用Python Lambda函数?匿名函数可以在程序中任何需要的地方使用,但是这个函数只能使用一次,即一次性的。...

    进行编程时,一般我们会给一个函数或者变量起一个名字,该名称是用于引用或寻址函数变量。但是有一个低调的函数,你不需要赋予它名字,因此该函数也叫匿名函数。该函数就是Python中的Lambda函数,下面就来为大家解析python—lambda函数,三个常用的高阶函数。

    为什么要使用Python Lambda函数?

    匿名函数可以在程序中任何需要的地方使用,但是这个函数只能使用一次,即一次性的。因此Python Lambda函数也称为丢弃函数,它可以与其他预定义函数(如filter(),map()等)一起使用。相对于我们定义的可重复使用的函数来说,这个函数更加简单便捷。

    """

    lambda 参数列表 : 返回值

    lambda 参数形式:

    1.无参数:lambda:100

    2.一个参数:lambda a: a

    3.默认参数:lambda a, b, c=100: a + b + c

    4.可变参数:*args,返回元组

    lambda *args: args

    5.可变参数:*kwargs,返回字典

    lambda **kwargs: kwargs

    lambda 应用:简化代码

    1.判断,lambda a, b: a if a > b else b

    2.列表数据按字典 key 值排序

    """

    # def fn1():

    # return 100

    # def de1():

    # r = fn1()

    # print(r)

    # r2 = lambda: 100

    # print(r2) # 地址:. at 0x00CCD6E8>

    # print(r2()) # 返回值:100

    # def test2():

    """

    lambda 测试案例

    """

    # fn1 = lambda a, b: a + b

    # print(fn1(1, 2))

    # fn2 = lambda *args: args

    # print(fn2(1, 2, 3))

    # print(fn2(1, 3))

    # print(fn2(1)) # (1,)

    # fn3 = lambda **kwargs: kwargs

    # print(fn3(name='py', age=30))

    #

    # fn4 = lambda a, b: a if a > b else b

    # print(fn4(100, 200))

    #

    # student = [{'name': 'a', 'id': '1', 'tel': 'a1'},

    # {'name': 'b', 'id': '2', 'tel': 'b2'},

    # {'name': 'c', 'id': '3', 'tel': 'c3'}]

    # student.sort(key=lambda x: x['name'])

    # print(student)

    # student.sort(key=lambda x: x['name'], reverse=True)

    # print(student)

    # student.sort(key=lambda x: x['id'])

    # print(student)

    """

    高阶函数:def add_num(a, b, f)

    内置高阶函数:

    1.map(func, list):

    将func 应用于list中的每一个元素,返回一个迭代器

    2.reduce(func, list):

    计算结果与下一个数据做累积计算,必须有两个参数

    from functools import reduce

    3.filter(func, list):

    过滤掉不符合条件的元素,返回一个filter对象,可用list()转换

    """

    # def add_num(a, b, f):

    # # 传入函数 f

    # return f(a) + f(b)

    # def func(x):

    # return x ** 2

    from functools import reduce

    def add_2(a, b):

    return a + b

    def func3(x):

    return x % 2 == 0

    def main():

    """

    体验高阶函数

    :return:

    """

    # print(abs(-2)) # 求绝对值

    # print(round(0.1)) # 四舍五入

    # s1 = add_num(1, 2, abs)

    # s2 = add_num(1, 2.5, round)

    # print(s1, s2)

    list1 = [1, 2, 3, 4, 5]

    # map(func, list1)

    # print(list(map(func, list1)))

    # s = reduce(add_2, list1)

    # print(s)

    r = filter(func3, list1)

    print(r) #

    print(list(r)) # [2, 4]

    if __name__ == '__main__':

    main()

    总结

    以上所述是小编给大家介绍的python lambda函数及三个常用的高阶函数,希望对大家有所帮助!

    展开全文
  • 该函数就是Python中的Lambda函数,下面就来为大家解析pythonlambda函数,三个常用的高阶函数。为什么要使用Python Lambda函数?匿名函数可以在程序中任何需要的地方使用,但是这个函数只能使用一次,即一次性的。...

    进行编程时,一般我们会给一个函数或者变量起一个名字,该名称是用于引用或寻址函数变量。但是有一个低调的函数,你不需要赋予它名字,因此该函数也叫匿名函数。该函数就是Python中的Lambda函数,下面就来为大家解析python—lambda函数,三个常用的高阶函数。

    为什么要使用Python Lambda函数?

    匿名函数可以在程序中任何需要的地方使用,但是这个函数只能使用一次,即一次性的。因此Python Lambda函数也称为丢弃函数,它可以与其他预定义函数(如filter(),map()等)一起使用。相对于我们定义的可重复使用的函数来说,这个函数更加简单便捷。

    """

    lambda 参数列表 : 返回值

    lambda 参数形式:

    1.无参数:lambda:100

    2.一个参数:lambda a: a

    3.默认参数:lambda a, b, c=100: a + b + c

    4.可变参数:*args,返回元组

    lambda *args: args

    5.可变参数:*kwargs,返回字典

    lambda **kwargs: kwargs

    lambda 应用:简化代码

    1.判断,lambda a, b: a if a > b else b

    2.列表数据按字典 key 值排序

    """

    # def fn1():

    # return 100

    # def de1():

    # r = fn1()

    # print(r)

    # r2 = lambda: 100

    # print(r2) # 地址:. at 0x00CCD6E8>

    # print(r2()) # 返回值:100

    # def test2():

    """

    lambda 测试案例

    """

    # fn1 = lambda a, b: a + b

    # print(fn1(1, 2))

    # fn2 = lambda *args: args

    # print(fn2(1, 2, 3))

    # print(fn2(1, 3))

    # print(fn2(1)) # (1,)

    # fn3 = lambda **kwargs: kwargs

    # print(fn3(name='py', age=30))

    #

    # fn4 = lambda a, b: a if a > b else b

    # print(fn4(100, 200))

    #

    # student = [{'name': 'a', 'id': '1', 'tel': 'a1'},

    # {'name': 'b', 'id': '2', 'tel': 'b2'},

    # {'name': 'c', 'id': '3', 'tel': 'c3'}]

    # student.sort(key=lambda x: x['name'])

    # print(student)

    # student.sort(key=lambda x: x['name'], reverse=True)

    # print(student)

    # student.sort(key=lambda x: x['id'])

    # print(student)

    """

    高阶函数:def add_num(a, b, f)

    内置高阶函数:

    1.map(func, list):

    将func 应用于list中的每一个元素,返回一个迭代器

    2.reduce(func, list):

    计算结果与下一个数据做累积计算,必须有两个参数

    from functools import reduce

    3.filter(func, list):

    过滤掉不符合条件的元素,返回一个filter对象,可用list()转换

    """

    # def add_num(a, b, f):

    # # 传入函数 f

    # return f(a) + f(b)

    # def func(x):

    # return x ** 2

    from functools import reduce

    def add_2(a, b):

    return a + b

    def func3(x):

    return x % 2 == 0

    def main():

    """

    体验高阶函数

    :return:

    """

    # print(abs(-2)) # 求绝对值

    # print(round(0.1)) # 四舍五入

    # s1 = add_num(1, 2, abs)

    # s2 = add_num(1, 2.5, round)

    # print(s1, s2)

    list1 = [1, 2, 3, 4, 5]

    # map(func, list1)

    # print(list(map(func, list1)))

    # s = reduce(add_2, list1)

    # print(s)

    r = filter(func3, list1)

    print(r) #

    print(list(r)) # [2, 4]

    if __name__ == '__main__':

    main()

    总结

    以上所述是小编给大家介绍的python lambda函数及三个常用的高阶函数,希望对大家有所帮助!

    展开全文
  • [编程基础] Python lambda函数总结

    千次阅读 多人点赞 2020-06-25 09:56:15
    Python lambda函数教程展示了如何在Python中创建匿名函数。Python中的匿名函数是使用lambda关键字创建的。 文章目录1 介绍1.1 简单使用1.2 Python lambda与map1.3 Python lambda与filter1.4 Python lambda与sort2 ...
  • python Lambda函数

    2019-03-04 14:52:00
    Lambda函数 Lambda函数用于创建一个匿名函数,函数名未和标识符进行绑定。 使用Lambda函数可以返回一些简单的运算结果。 简单函数的简单表示,即lambda。 格式:  lambda(n : 表达式) n —— 形式...
  • python lambda函数

    千次阅读 2019-06-14 10:04:28
    使用lambda函数应该注意的几点: lambda定义的是单行函数,如果需要复杂的函数,应该定义普通函数 lambda参数列表可以包含多个参数,如 lambda x, y: x + y lambda中的表达式不能含有命令,而且只限一条表达式 默认...
  • lambda表达式详解,python lambda函数如何使用,下面小编向你讲解几种用法工具/原料python方法/步骤1首先我们可以用lambda做一些简单的求和操作,主要是可以节省代码量2上面add = lambda x,y:x+y,x和y代表两个变量...
  • python def和python lambda这2个有相似点也有不同点,今天给大家分享下自己的心得吧。先说说2个的相似点: 这两个很重要的相似点就是都可以定义一些固定的方法或者是流程,供给程序来调用,比如我们要定义一个变量加...
  • 该函数就是Python中的Lambda函数,下面就来为大家解析lambda函数的基本使用方法。为什么要使用Python Lambda函数?匿名函数可以在程序中任何需要的地方使用,但是这个函数只能使用一次,即一次性的。因此Python...
  • 本文实例讲述了Python lambda函数基本用法。分享给大家供大家参考,具体如下: 这里我们简单学习一下python lambda函数。 首先,看一下python lambda函数的语法,如下: f=lambda [parameter1,parameter2,……]:...
  • python lambda 函数

    2019-07-28 08:46:33
    用法 用于定义简单的函数运算: fun = lambda x,y:x+y print(fun(3,4)) 输出结果为:

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 11,976
精华内容 4,790
关键字:

pythonlambda函数

python 订阅