Lambda表达式 (Lambda Expressions)

Lambda Expressions are ideally used when we need to do something simple and are more interested in getting the job done quickly rather than formally naming the function. Lambda expressions are also known as anonymous functions.

当我们需要做一些简单的事情并且对快速完成工作而不是正式命名函数更感兴趣时,Lambda表达式是理想的选择。 Lambda表达式也称为匿名函数。

Lambda Expressions in Python are a short way to declare small and anonymous functions (it is not necessary to provide a name for lambda functions).

Python中的Lambda表达式是声明小型匿名函数的一种简短方法(不必为lambda函数提供名称)。

Lambda functions behave just like regular functions declared with the def keyword. They come in handy when you want to define a small function in a concise way. They can contain only one expression, so they are not best suited for functions with control-flow statements.

Lambda函数的行为就像使用def关键字声明的常规函数​​一样。 当您想以简洁的方式定义小功能时,它们会派上用场。 它们只能包含一个表达式,因此它们最不适合带有控制流语句的函数。

Lambda函数的语法 (Syntax of a Lambda Function)

lambda arguments: expression

lambda arguments: expression

Lambda functions can have any number of arguments but only one expression.

Lambda函数可以具有任意数量的参数,但只能有一个表达式。

范例程式码 (Example code)

# Lambda function to calculate square of a number
square = lambda x: x ** 2
print(square(3)) # Output: 9# Traditional function to calculate square of a number
def square1(num):return num ** 2
print(square(5)) # Output: 25

In the above lambda example, lambda x: x ** 2 yields an anonymous function object which can be associated with any name. So, we associated the function object with square. So from now on we can call the square object like any traditional function, for example square(10)

在上面的lambda示例中, lambda x: x ** 2产生一个匿名函数对象,该对象可以与任何名称关联。 因此,我们将功能对象与square相关联。 因此,从现在开始,我们可以像任何传统函数一样调用square对象,例如square(10)

Lambda函数的示例 (Examples of lambda functions)

初学者 (Beginner)

lambda_func = lambda x: x**2 # Function that takes an integer and returns its square
lambda_func(3) # Returns 9

中间 (Intermediate)

lambda_func = lambda x: True if x**2 >= 10 else False
lambda_func(3) # Returns False
lambda_func(4) # Returns True

复杂 (Complex)

my_dict = {"A": 1, "B": 2, "C": 3}
sorted(my_dict, key=lambda x: my_dict[x]%3) # Returns ['C', 'A', 'B']

用例 (Use-case)

Let’s say you want to filter out odd numbers from a list. You could use a for loop:

假设您要从list过滤掉奇数。 您可以使用for循环:

my_list = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
filtered = []for num in my_list:if num % 2 != 0:filtered.append(num)print(filtered)      # Python 2: print filtered
# [1, 3, 5, 7, 9]

Or you could write this as a one liner with list-comprehensions:

或者,您可以将其编写为具有列表理解力的一体式班轮:

filtered = [x for x in [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] if x % 2 != 0]

But you might be tempted to use the built-in filter function. Why? The first example is a bit too verbose and the one-liner can be harder to understand. But filter offers the best of both words. What is more, the built-in functions are usually faster.

但是您可能会想使用内置的filter功能。 为什么? 第一个示例过于冗长,难以理解。 但是filter提供了两个词中最好的。 而且,内置功能通常更快。

my_list = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]filtered = filter(lambda x: x % 2 != 0, my_list)list(filtered)
# [1, 3, 5, 7, 9]

NOTE: in Python 3 built in functions return generator objects, so you have to call list. In Python 2, on the other hand, they return a list, tupleor string.

注意:在Python 3中,内置函数返回生成器对象,因此您必须调用list 。 另一方面,在Python 2中,它们返回一个listtuplestring

So what happened? You told filter to take each element in my_list and apply the lambda expressions. The values that return False are filtered out.

所以发生了什么事? 您告诉filter接受my_list每个元素并应用lambda表达式。 返回False的值将被过滤掉。

更多信息: (More Information:)

  • Official Docs

    官方文件

翻译自: https://www.freecodecamp.org/news/lambda-expressions-in-python/

Python中的Lambda表达式相关推荐

  1. python中的Lambda表达式/函数

    Explanation: 说明: In python, there is a function named Lambda. Lambda function is an anonymous functi ...

  2. Python中的lambda表达式与filter函数

    1.lambda表达式 Python使用lambda来创建匿名函数 1.lambda只是一个表达式,函数体比def简单很多 2.lambda的主体是一个表达式,而不是一个代码块.仅仅能在lambda表 ...

  3. 一文弄懂Python中的Lambda表达式

    1. 引言 不管大家是Python新手还是老手 ,一定都听说过Lambda 函数.它的语法简单而且用起来相当方便. 本文主要是介绍Python lambda 函数的,为了阅读方便,分为以下 3 个部分 ...

  4. Python基础之lambda表达式

    目录 1.lambda函数介绍 2.lambda函数与def函数的区别 3.lambda案例 4.map方法混搭 1.lambda函数介绍 有时在使用函数时不需要给函数分配一个名称,该函数就是&quo ...

  5. 关于python中lambda函数的描述_关于Python中的lambda函数

    lambda是Python编程语言中使用频率较高的一个关键字.那么,什么是lambda?它有哪些用法?网上的文章汗牛充栋,可是把这个讲透的文章却不多.这里,我们通过阅读各方资料,总结了关于Python ...

  6. Python、C++ lambda 表达式

    Python.C++ lambda 表达式 lambda函数简介 匿名函数lambda:是指一类无需定义标识符(函数名)的函数或子程序.所谓匿名函数,通俗地说就是没有名字的函数,lambda函数没有名 ...

  7. Python中的lambda和apply结合使用

    1. lambda lambda原型为:lambda 参数:操作(参数) lambda函数也叫匿名函数,即没有具体名称的函数,它允许快速定义单行函数,可以用在任何需要函数的地方.这区别于def定义的函 ...

  8. python中的lambda函数用法--无需定义函数名的函数或子程序,避免代码充斥着大量单行函数

    匿名函数lambda:是指一类无需定义标识符(函数名)的函数或子程序. lambda 函数可以接收任意多个参数 (包括可选参数) 并且返回单个表达式的值. 要点: lambda 函数不能包含命令 包含 ...

  9. 关于Python中的lambda,这篇阅读量10万+的文章可能是你见过的最完整的讲解

    lambda是Python编程语言中使用频率较高的一个关键字.那么,什么是lambda?它有哪些用法?网上的文章汗牛充栋,可是把这个讲透的文章却不多.这里,我们通过阅读各方资料,总结了关于Python ...

最新文章

  1. 3.ELK 之elasticsearch CRUD
  2. MATLAB从入门到精通-控制系统动态特性的计算以及阶跃响应波德图等
  3. 会计的疑惑--BigDecimal的秘密
  4. 阿里产品专家杨文韬:你想了解的1688都在这里
  5. How many ways HDU - 1978(记忆化搜索关于求多少种方式模板)
  6. 信息学奥赛一本通 1961:【13NOIP普及组】计数问题 | 洛谷 P1980 [NOIP2013 普及组] 计数问题
  7. 百年古董电影秒变4K高清、60FPS,AI插值,还能着色
  8. Oracle EBS SLA取值
  9. 计算机大赛软件应用与开发,我院学生在2019年中国大学生计算机设计大赛“软件应用与开发”决赛中荣获佳绩...
  10. 【车道线检测】基于matlab Hough变换视频车道线检测 【含Matlab源码 274期】
  11. 外部方法调用内部_实战经验:通过类成员函数指针实现类方法调用
  12. 域名转出与转入,以新网到万网之间的转移为例
  13. 手把手教你搭建SpringCloud项目
  14. 降采样滤波器 matlab,降采样FIR滤波器的设计与硬件实现
  15. 内存取证-volatility工具的使用 (史上更全教程,更全命令)
  16. 数商云商业服务业SaaS管理系统:实现高效业务协作,助力企业完善数字化转型之路
  17. python代码怎么换行继续写_python代码太长怎么换行
  18. 吴恩达 DeepLearning 第二课第三周题目(包括选择题)
  19. vue+ElementUI 实现管理端照片墙(或广告位)效果
  20. torch.prob

热门文章

  1. Springboot 日志管理模块编写记录
  2. mysqlselectdb php_PHP MySQL Select(数据库查询)
  3. 小程序内容审核违规过滤,在小程序使用security.msgSecCheck
  4. iOS开发中用到的一些第三方库
  5. C/C++利用三元组实现稀疏矩阵运算
  6. 机器学习-线性回归LinearRegression
  7. Vue.js学习系列(四十二)-- Vue.js组件
  8. C语言编写的PHP框架--yaf入门编程
  9. 一星期没完成Ansible任务
  10. 主机入侵防御系统(HIPS)分析