Python浅析匿名函数lambda的用法

目录
  • lambda函数的定义   
  • Lambda函数在Python中

lambda函数的定义   

lambda函数是Python中常用的内置函数,又称为匿名函数。和普通函数相比,它只有函数体,省略了def和return,使得结构看起来更精简。其基本调用语法如下:

lambda [var1 [,var2,…varn]]:expression

[var1 [,var2,…varn]]:形式参数,可以理解为入参,供表达式使用。

expression:函数表达式,其结果为lambda函数的返回值。

Lambda函数在Python中

lambda 函数是一个匿名函数(即,没有名称定义),它可以接受任意数量的参数,但与普通函数不同,它只计算并返回一个表达式

Python 中的 lambda 函数使用以下语法表达:

lambda 参数:表达式

lambda 函数包括三个元素:

  • 关键字 lambda:与普通函数中 def 类似
  • 参数:支持传递位置和关键字参数,与普通函数一样
  • 正文:处理定参数的表达式

需要注意的是,普通函数不同,这里不需要用括号将 lambda 函数的参数括起来,如果 lambda 函数有两个或更多参数,我们用逗号列出它们

我们使用 lambda 函数只计算一个短表达式(理想情况下,单行)并且只计算一次,这意味着我们以后不会再复用这个函数。通常来说我们会将 lambda 函数作为参数传递给高阶函数(接受其他函数作为参数的函数),例如 Python 内置函数,如 filter()、map() 或 reduce()等

匿名函数,顾名思义,没有名字的函数

我来看一下语法:

lambda [list]: 表达式

这里介绍一下参数

"""
[list]:表示参数列表, 
注意:参数与表达式之间需要冒号来区分 
表达式 :表达式方法非常多,表达形式也非常多 
返回值 :为表达式的结果value
"""

例如,上方的代码这里

lambda x:x % n > 0

x 为需要传入的参数,而 x % n > 0 为表达式,之间需要用冒号进行引用,计算的表达式结果为返回值这里举例说明:如果设计一个求 2 个数之和的函数,使用普通函数的方式,定义如下:

def add(x, y):
    return x + y
print(add(3, 4))

我们看到只有一行表达式,直接运算结果返回值,那这时我们如果使用匿名函数一行代码即可完成

add = lambda x, y: x + y
print(add)

这里我们将直接写出我们的结果,我们可以看到对于比较单行返回的函数,使用 lambda 表达式可以省去定义函数的过程,让代码更加简洁,针对不需要多次复用的函数,使用 lambda 表达式可以在用完之后立即释放,提高程序 执行的性能。而且还能配合其他的一些高阶函数配合使用

# -*- coding: utf-8 -*-
fun1 = lambda a, b: x + y
x = int(input('x='))
y = int(input('y='))
print('x+y=', fun1(x, y))
def add(a, b):
    print('add=', a + b)
add(x, y)
fun = lambda a, b: a ** 2
f = fun(2, 4)
print(type(fun))
print(f)

到此这篇关于Python浅析匿名函数lambda的用法的文章就介绍到这了,更多相关Python lambda内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • python ---lambda匿名函数介绍

    lambda特性:"一个语法,三个特性,四个用法" 一个语法 在Python中,lambda的语法是唯一的.其形式如下: lambda argument_list: expression 其中,lambda是Python预留的关键字,argument_list和expression由用户自定义.具体介绍如下. 1.这里的argument_list是参数列表.它的结构与Python中函数(function)的参数列表是一样的.具体来说,argument_list可以有非常多的形式.例如:

  • Python之lambda匿名函数及map和filter的用法

    现有两个元组(('a'),('b')),(('c'),('d')),请使用python中匿名函数生成列表[{'a':'c'},{'b':'d'}] t1 = (('a'), ('c')) t2 = (('b'), ('d')) print(list(map(lambda t: {t[0]: t[1]}, zip(t1, t2)))) l = lambda t1, t2: [{i: j} for i, j in zip(t1, t2)] print(l(t1, t2)) map内置函数使用: ma

  • Python的lambda匿名函数的简单介绍

    lambda函数也叫匿名函数,即,函数没有具体的名称.先来看一个最简单例子: 复制代码 代码如下: def f(x):return x**2print f(4) Python中使用lambda的话,写成这样 复制代码 代码如下: g = lambda x : x**2print g(4) lambda表达式在很多编程语言都有对应的实现.比如C#: 复制代码 代码如下: var g = x => x**2Console.WriteLine(g(4)) 那么,lambda表达式有什么用处呢?很多人提

  • python中lambda匿名函数详解

    在Python中,不通过def来声明函数名字,而是通过lambda关键字来定义的函数称为匿名函数 关键字lambda表示匿名函数 语法 lambda 参数:表达式 先写lambda关键字,然后依次写匿名函数的参数,多个参数中间用逗号连接,然后是一个冒号,冒号后面写返回的表达式 lambda函数比普通函数更简洁 匿名函数有个好处:函数没有名字,不必担心函数名冲突 匿名函数与普通函数的对比 : def sum_func(a, b, c): return a + b + c sum_lambda =

  • python lambda表达式(匿名函数)写法解析

    这篇文章主要介绍了python lambda表达式(匿名函数)写法解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 # lambda表达式,为了解决简单函数的情况,如: def func(a1,a2): return a1 + a2 func = lambda a1,a2:a1+a2 # 上面这两个是一样的 def func1(a1,a2): return a1 + a2 func2 = lambda a1,a2:a1+a2 wdc = fu

  • python基础教程之匿名函数lambda

     python lambda 当我们在使用函数时,有时候,并不需要显示的定义一个函数,我们可以使用匿名函数更加方便,在Python中对匿名函数也提供了支持. 比如当我们想计算两个数a,b之和时,即f(a,b) = a + b.我们可以有两种方法完成,第一种就是显示的定义一个函数f(x,y),然后将参数传进去得到结果.第二种方式就是使用匿名函数了. f = lambda x,y:x+y >>>f(1,2) 3 匿名函数lambda x,y:x+y实际上就是: def f(x, y): re

  •  Python 匿名函数lambda 详情

    目录 1.前言 2.如何使用 lambda 3.总结 1.前言 在 Python 中,说到函数,大家都很容易想到用 ​​def​​ 关键字来声明一个函数: def Hello():     # function body 然后我们可以在​添加由圆括号括起来的参数列表.函数体内可能有很多行代码,里面有尽可能多的语句和表达式.​ 除了 ​​def​​​ 语句定义函数以外,还有一种生成函数对象的表达式形式: ​​lambda​​ 表达式,这个表达式创建了一个能够随时调用的函数. 有时声明一个函数只有一

  • python匿名函数lambda原理及实例解析

    这篇文章主要介绍了python匿名函数lambda原理及实例解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 代码如下 #-*- coding:utf-8 -*- #__author__ = "www.iplaypy.com" # 普通python函数 def func(a,b,c): return a+b+c print func(1,2,3) # 返回值为6 # lambda匿名函数 f = lambda a,b,c:a+b+c

  • 详解Python匿名函数(lambda函数)

    匿名函数lambda Python使用lambda关键字创造匿名函数.所谓匿名,意即不再使用def语句这样标准的形式定义一个函数.这种语句的目的是由于性能的原因,在调用时绕过函数的栈分配.其语法是: lambda [arg1[, arg2, ... argN]]: expression 其中,参数是可选的,如果使用参数的话,参数通常也会在表达式之中出现. 下面举例来说明lambda语句的使用方法(无参数). # 使用def定义函数的方法 def true(): return True #等价的l

  • Python浅析匿名函数lambda的用法

    目录 lambda函数的定义    Lambda函数在Python中 lambda函数的定义    lambda函数是Python中常用的内置函数,又称为匿名函数.和普通函数相比,它只有函数体,省略了def和return,使得结构看起来更精简.其基本调用语法如下: lambda [var1 [,var2,…varn]]:expression [var1 [,var2,…varn]]:形式参数,可以理解为入参,供表达式使用. expression:函数表达式,其结果为lambda函数的返回值. L

  • Python函数的返回值、匿名函数lambda、filter函数、map函数、reduce函数用法实例分析

    本文实例讲述了Python函数的返回值.匿名函数lambda.filter函数.map函数.reduce函数用法.分享给大家供大家参考,具体如下: 函数的返回值: 函数一旦执行到   return,函数就会结束,并会返回return 后面的值,如果不使用显式使用return返回,会默认返回None . return None可以简写为   return. def my_add(x,y): z=x+y return z print(my_add(1,2))##打印的是返回值 def my_add_

  • python匿名函数的实例用法

    一般情况下,lambda就像是一个函数简化器,它允许在所用代码中嵌入函数的定义.它们完全是可选的(一直都可以使用def替换它们),但只需嵌入少量可执行代码,就能使代码结构更加简洁,从而大大简化代码复杂性,提高代码可读性. 1.优点 (1)减少重复代码: (2)模块化代码. 2.实例 # def函数 def square(x): return x**2 squared = map(square, [1, 2, 3, 4, 5]) # lambda函数 squared = map(lambda x:

  • Python学习笔记之lambda表达式用法详解

    本文实例讲述了Python学习笔记之lambda表达式用法.分享给大家供大家参考,具体如下: Lambda 表达式 使用 Lambda 表达式创建匿名函数,即没有名称的函数.lambda 表达式非常适合快速创建在代码中以后不会用到的函数. 麻烦的写法: def multiply(x, y): return x * y 使用Lambda之后: double = lambda x, y: x * y Lambda 函数的组成部分: 关键字 lambda 表示这是一个 lambda 表达式. lamb

  • Python中关于函数的具体用法范例以及介绍

    目录 1.函数的介绍 2.函数的定义和调用 3.函数的参数 4.参数的分类 4.1.位置参数 4.2.关键字参数 4.3.缺省参数 4.4.不定长参数 1.不定长参数*args 2.不定长参数* * kwargs 4.5.函数位置顺序 4.6.函数的返回值 1.多个return 2.返回多个数据 4.7.函数的类型 1.无参数,无返回值的函数 2.无参数,有返回值的函数 3.有参数,无返回值的函数 4.有参数,有返回值的函数 4.8.函数的嵌套 4.9.匿名函数 5.函数小练习 1.函数的介绍

  • Python中defaultdict与lambda表达式用法实例小结

    本文实例讲述了Python中defaultdict与lambda表达式用法.分享给大家供大家参考,具体如下: 从教程中看到defaultdict是一个类,在一台装有Python2.7.6的电脑上使用发现不存在.在文档中搜索了一下也没有找到,想当然以为这或许是Python 3.X专有的.因为教程就是基于Python 3.X实现的.后来换了一台装有Python 3.X的电脑依然出问题. 求助于网络,发现这个类其实是collections模块中的一个类.看来,学习很难摆脱网络环境啊! 这个类是dict

  • Python3匿名函数lambda介绍与使用示例

    概述 匿名函数,顾名思义即没有名称的函数,和def定义的函数的最大区别在于匿名函数创建后返回函数本身(即匿名函数不需要return来返回值),表达式本身结果就是返回值,而def创建后则赋值给一个变量名,在Python中,我们利用关键词lambda创建匿名函数,以下是匿名函数lambda表达式的形式: lambda arg1,arg2,.....argn:expression 以下为一些lambda的特点: lambda 是一个表达式,而不是一个语句,即我们可以在任何可以使用表达式的场景一样使用l

随机推荐