返回顶部
首页 > 资讯 > 后端开发 > Python >怎么写好Python的Lambda函数
  • 183
分享到

怎么写好Python的Lambda函数

2023-06-29 17:06:03 183人浏览 薄情痞子

Python 官方文档:入门教程 => 点击学习

摘要

小编给大家分享一下怎么写好python的Lambda函数,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!前言:Lambda 函数是 Python 中的匿名函数。当你

小编给大家分享一下怎么写好python的Lambda函数,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!

前言:

Lambda 函数是 Python 中的匿名函数。当你需要完成一件小工作时,在本地环境中使用它们可以让工作得心应手。有些人将它们简称为 lambdas,它们的语法如下:

lambda arguments: expression

lambda 关键字可以用来创建一个 lambda 函数,紧跟其后的是参数列表和用冒号分割开的单个表达式。例如,lambda x: 2 * x 是将任何输入的数乘2,而 lambda x, y: x+y 是计算两个数字的和。语法十分直截了当,对吧?

假设您知道什么是 lambda 函数,本文旨在提供有关如何正确使用 lambda 函数的一些常规准则。

1. 不要返回任何值

看看语法,您可能会注意到我们在 lambda 函数中并没有返回任何内容。这都是因为 lambda 函数只能包含一个表达式。然而,使用 return 关键字会构成不符合规定语法的语句,如下所示:

>>> integers = [(3, -3), (2, 3), (5, 1), (-4, 4)]>>> sorted(integers, key=lambda x: x[-1])[(3, -3), (5, 1), (2, 3), (-4, 4)]>>> sorted(integers, key=lambda x: return x[-1])...   File "<input>", line 1    sorted(integers, key=lambda x: return x[-1])                                   ^SyntaxError: invalid syntax

该错误可能是由于无法区分表达式和语句而引起的。像是包含 return、try、 with 以及 if 的语句会执行特殊动作。然而,表达式指的是那些可以被计算出一个值的表达,例如数值或其他 Python 对象。

通过使用 lambda 函数,单个表达式会被计算为一个值并且参与后续的计算,例如由 sorted 函数排序

2. 不要忘记更好的选择

lambda 函数最常见的使用场景是将它作为一些内置工具函数中 key 的实参,比如上面展示的 sorted() 和 max()。根据情况,我们可以使用其他替代方法。

思考下面的例子:

>>> integers = [-4, 3, 7, -5, -2, 6]>>> sorted(integers, key=lambda x: abs(x))[-2, 3, -4, -5, 6, 7]>>> sorted(integers, key=abs)[-2, 3, -4, -5, 6, 7]>>> scores = [(93, 100), (92, 99), (95, 94)]>>> max(scores, key=lambda x: x[0] + x[1])(93, 100)>>> max(scores, key=sum)(93, 100)

在数据科学领域,很多人使用 pandas 库来处理数据。如下所示,我们可以使用 lambda 函数通过 map() 函数从现有数据中创建新数据。除了使用 lambda 函数外,我们还可以直接使用算术函数,因为 pandas 是支持的:

>>> import pandas as pd>>> data = pd.Series([1, 2, 3, 4])>>> data.map(lambda x: x + 5)0    61    72    83    9dtype: int64>>> data + 50    61    72    83    9dtype: int64

3. 不要将它赋值给变量

我曾见过一些人将 lambda 函数误认为是简单函数的另一种声明方式,我们可能也见过有人像下面这么做:

>>> doubler = lambda x: 2 * x>>> doubler(5)10>>> doubler(7)14>>> type(doubler)<class 'function'>

对 lambda 函数命名的唯一作用可能是出于教学目的,以表明 lambda 函数的确是和其他函数一样的函数&mdash;&mdash;可以被调用并且具有某种功能。除此之外,我们不应该将 lambda 函数赋值给变量。

为 lambda 函数命名的问题在于这使得调试不那么直观。与其他的使用常规 def 关键字创建的函数不同,lambda 函数没有名字,这也是为什么有时它们被称为匿名函数的原因。思考下面简单的例子,找出细微的区别:

>>> inversive0 = lambda x: 1 / x>>> inversive0(2)0.5>>> inversive0(0)Traceback (most recent call last):  File "<input>", line 1, in <module>  File "<input>", line 1, in <lambda>ZeroDivisionError: division by zero>>> def inversive1(x):...     return 1 / x... >>> inversive1(2)0.5>>> inversive1(0)Traceback (most recent call last):  File "<input>", line 1, in <module>  File "<input>", line 2, in inversive1ZeroDivisionError: division by zero

当我们的代码存在关于 lambda 函数的问题(即 inversive0),Traceback 错误信息只会提示您 lambda 函数存在问题。

相比之下,使用正常定义的函数,Traceback会清晰地提示您有问题的函数(即 inversive1)。

与此相关,如果您想多次使用 lambda 函数,最佳实践是使用通过 def 定义的允许使用文档字符串的常规函数。

4. 不要忘记列表推导式

有些人喜欢将 lambda 函数和高阶函数一起使用,比如 map 或 filter。思考下面用法示例:

>>> # 创建一个数字列表>>> numbers = [2, 1, 3, -3]>>> # 使用带有 lambda 函数的 map 函数>>> list(map(lambda x: x * x, numbers))[4, 1, 9, 9]>>> # 使用带有 lambda 函数的 filter 函数>>> list(filter(lambda x: x % 2, numbers))[1, 3, -3]

我们可以使用可读性更强的列表推导式代替 lambda 函数。如下所示,我们使用列表推导式来创建相同的列表对象。如所见,与列表推导式相比,之前将 map 或 filter 函数与 lambda 函数一起使用更麻烦。因此,在创建涉及高阶函数的列表时,应考虑使用列表推导式。

>>> # Use list comprehensions>>> [x * x for x in numbers][4, 1, 9, 9]>>> [x for x in numbers if x % 2][1, 3, -3]

以上是“怎么写好Python的Lambda函数”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注编程网Python频道!

--结束END--

本文标题: 怎么写好Python的Lambda函数

本文链接: https://lsjlt.com/news/325979.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • 怎么写好Python的Lambda函数
    小编给大家分享一下怎么写好Python的Lambda函数,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!前言:Lambda 函数是 Python 中的匿名函数。当你...
    99+
    2023-06-29
  • 如何写好 Python 的 Lambda 函数
    目录1. 不要返回任何值2. 不要忘记更好的选择3. 不要将它赋值给变量4. 不要忘记列表推导式结论前言: Lambda 函数是 Python 中的匿名函数。当你需要完成一件小工作时...
    99+
    2024-04-02
  • lambda函数python怎么用
    python 中的 lambda 函数是匿名函数,用于定义执行单个表达式的函数。它具有简洁、匿名和一次性使用的优点。lambda 函数的语法为:lambda 参数列表: 表达式,其中参数...
    99+
    2024-05-13
    python
  • Python lambda函数怎么使用
    本篇内容介绍了“Python lambda函数怎么使用”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!一、lambda函数的定义&a...
    99+
    2023-07-02
  • python中lambda函数怎么用
    Python中lambda函数是一种匿名函数,也称为内联函数或者函数字面量。可以用来创建简单的、单行的函数,通常用于需要一个函数,但是只使用一次,不需要命名的情况。lambda 函数的基本语法为“lambda arguments: expr...
    99+
    2023-12-13
    python Lambda函数
  • python——lambda函数
    lambda 表达式,又称匿名函数,常用来表示内部仅包含 1 行表达式的函数。如果一个函数的函数体仅有 1 行表达式,则该函数就可以用 lambda 表达式来代替。 name = lambda [list] : 表达式 其中,定义 lamb...
    99+
    2023-09-04
    python 开发语言
  • Python中怎么使用Lambda函数
    这篇文章主要介绍了Python中怎么使用Lambda函数,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。引言Lambda 函数(也称为匿名函数)是函数式编程中的核心概念之一。支...
    99+
    2023-06-14
  •  Python匿名函数lambda怎么用
    今天小编给大家分享一下 Python匿名函数lambda怎么用的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。1.前...
    99+
    2023-06-29
  • Python之lambda函数
    匿名函数lambda:是指一类无需定义标识符(函数名)的函数或子程序。 lambda 函数可以接收任意多个参数 (包括可选参数) 并且返回单个表达式的值。 语法: lambda [arg1 [,arg2,.....argn]]:expre...
    99+
    2023-01-31
    函数 Python lambda
  • Python当中Lambda函数怎么使用
    本文小编为大家详细介绍“Python当中Lambda函数怎么使用”,内容详细,步骤清晰,细节处理妥当,希望这篇“Python当中Lambda函数怎么使用”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。什么是Lamb...
    99+
    2023-07-06
  • lambda函数怎么用
    这篇文章主要介绍lambda函数怎么用,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!lambda函数也叫匿名函数,就是没有函数名的函数。lambda表达式基于数学中的λ演算得名,直接对应于其中的lambda抽象。la...
    99+
    2023-06-02
  • python中Lambda函数是什么
    这篇文章主要为大家展示了“python中Lambda函数是什么”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“python中Lambda函数是什么”这篇文章吧。L...
    99+
    2024-04-02
  • Python lambda函数介绍
    一、lambda函数也叫匿名函数,即,函数没有具体的名称。先来看一个最简单例子: def f(x):return x**2print f(4) Python中使用lambda的话,写成这样 g = lambda x : x**2print...
    99+
    2023-01-30
    函数 Python lambda
  • Python中的lambda函数有什么用
    lambda函数是一种匿名函数,它可以在需要函数的地方使用,常用于简化代码和处理简单的函数操作。Lambda函数具有以下几个特点和用...
    99+
    2023-08-17
    Python lambda
  • Python 中的lambda函数介绍
    在Python中,lambda函数是一种匿名函数,它是一种简化函数定义的方式。lambda函数可以在需要函数对象的任何地方使用,并且...
    99+
    2023-08-16
    python
  • PHP函数的Lambda函数
    在PHP中,Lambda函数也被称为匿名函数,是指没有拥有标识符的函数。Lambda函数在其他编程语言中也比较常见,比如Python和JavaScript。相比于常规函数,Lambda函数更加灵活和易于使用。PHP以及其他编程语言都提供了L...
    99+
    2023-05-18
    PHP函数 Lambda函数 编程
  • python函数和python匿名函数lambda详解
    目录1. python函数1.1 函数的作用1.2 函数定义1.3 函数调用1.4 函数的参数1.4.1 参数的传递1.4.2 参数类型1.4.2.1 位置参数(必备参数)1.4.2...
    99+
    2024-04-02
  • python中lambda函数用法
    lambda 函数是 python 中一种匿名函数,允许定义一次性函数而不声明名称。其用法主要包括:作为回调、创建一次性函数、作为键或值进行排序或过滤。 Python 中的 lambd...
    99+
    2024-05-15
    python
  • python中lambda函数的作用是什么
    lambda函数是一种匿名函数,它可以在不定义函数名称的情况下创建函数。lambda函数通常用于简单的、单行的函数定义,可以作为参数...
    99+
    2023-09-20
    python
  • Python中lambda函数的用法是什么
    在Python中,lambda函数是一种匿名函数,也称为lambda表达式。它只能包含一个表达式,并且返回该表达式的结果。lambd...
    99+
    2023-08-18
    Python lambda
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作