0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

python匿名函数的使用

python爬虫知识分享 来源:python爬虫知识分享 作者:python爬虫知识分享 2022-03-02 16:42 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

python匿名函数的使用

匿名函数(英语:anonymous function)是指一类无需定义标识符(函数名)的函数。通俗来说呢,就是它可以让我们的函数,可以不需要函数名。

正常情况下,我们定义一个函数,使用的是 def 关键字,而当你学会使用匿名函数后,替代 def 的是 lambda

这边使用deflambda 分别举个例子,你很快就能理解。

def mySum(x, y):
    return x+y
mySum(2, 3)
# 5

(lambda x, y: x+y)(2, 4)
# 6

从上面的示例,我们可以看到匿名函数直接运行,省下了很多行的代码,有没有?

接下来,我们的仔细看一下它的用法

带 if/else

>>>( lambda x, y: x if x < y else y )( 1, 2 )
1

嵌套函数

>>>( lambda x: ( lambda y: ( lambda z: x + y + z  )( 1 ) )( 2 ) )( 3 )
6

递归函数

>>> func = lambda n:1 if n == 0 else n * func(n-1)
>>> func(5)
120

或者

>>> f = lambda func, n: 1 if n == 0 else n * func( func, n - 1 )
>>> f(f,4)
24

从以上示例来看,lambda 表达式和常规的函数相比,写法比较怪异,可读性相对较差。除了可以直接运行之外,好像并没有其他较为突出的功能,为什么在今天我们要介绍它呢?

首先我们要知道 lambda 是一个表达式,而不是一个语句。正因为这个特点,我们可以在一些特殊的场景中去使用它。

审核编辑:符乾江

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 函数
    +关注

    关注

    3

    文章

    4406

    浏览量

    66833
  • python
    +关注

    关注

    57

    文章

    4857

    浏览量

    89576
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    为什么不建议用匿名结构体

    说起匿名结构体,想必大家第一感觉就是看着好高大上的名字,但实际上也就那样。 typedef struct { union { struct { uint8_t bit_0:1
    发表于 12-04 07:39

    termux如何搭建python游戏

    termux如何搭建python游戏 Termux搭建Python游戏开发环境的完整指南 一、Termux基础环境准备 Termux是一款无需root即可在安卓设备上运行的Linux终端
    发表于 08-29 07:06

    Python中字符串逆序有几种方式,代码是什么

    对于一个给定的字符串,逆序输出,这个任务对于python来说是一种很简单的操作,毕竟强大的列表和字符串处理的一些列函数足以应付这些问题 了,今天总结了一下python中对于字符串的逆序输出的几种常用
    的头像 发表于 08-28 14:44 776次阅读

    python app不能运行怎么解决?

    ;python_agent[1241]: xmlrpc request method supervisor.stopProcess failed;python_agent[1241]: xmlrpc request method supervisor.stopProces
    发表于 08-06 06:27

    详解hal_entry入口函数

    当使用RTOS时,程序从main函数开始进行线程调度;当没有使用RTOS时,C语言程序的入口函数main函数调用了hal_entry函数。由于我们新建的工程是没有选用RTOS的,因此,
    的头像 发表于 07-25 15:34 1661次阅读

    解锁LuatOS新世界:二次开发必备的3个核心常识

    来了解LuatOS开发需要熟悉的几个常识。   一、匿名函数 在Lua代码里面,经常看到没有名字的函数。 这种函数定义之后,要么马上运行,要么作为另一个
    的头像 发表于 06-23 16:08 237次阅读
    解锁LuatOS新世界:二次开发必备的3个核心常识

    突破LuatOS开发瓶颈:三个二次开发必备知识揭秘!

    。   一、匿名函数 在Lua代码里面,经常看到没有名字的函数。 这种函数定义之后,要么马上运行,要么作为另一个函数的返回值赋给其他变量,所
    的头像 发表于 06-23 15:05 255次阅读
    突破LuatOS开发瓶颈:三个二次开发必备知识揭秘!

    HarmonyOS5云服务技术分享--匿名登录功能指南

    匿名登录? 想象一下新用户第一次打开你的应用,繁琐的注册流程可能会劝退不少人。匿名登录就像给用户一张「临时通行证」,既能保留基础用户数据,又能大幅降低使用门槛,有效提升用户留存率~ ?️ 集成指南(5步
    发表于 05-22 16:41

    ​如何在虚拟环境中使用 Python,提升你的开发体验~

    RaspberryPiOS预装了Python,你需要使用其虚拟环境来安装包。今天出版的最新一期《TheMagPi》杂志刊登了我们文档负责人NateContino撰写的一篇实用教程,帮助你入门
    的头像 发表于 03-25 09:34 628次阅读
    ​如何在虚拟环境中使用 <b class='flag-5'>Python</b>,提升你的开发体验~

    零基础入门:如何在树莓派上编写和运行Python程序?

    在这篇文章中,我将为你简要介绍Python程序是什么、Python程序可以用来做什么,以及如何在RaspberryPi上编写和运行一个简单的Python程序。什么是Python程序?
    的头像 发表于 03-25 09:27 1523次阅读
    零基础入门:如何在树莓派上编写和运行<b class='flag-5'>Python</b>程序?

    运行OVModelForCausalLM Python模块时出错了,怎么解决?

    创建了一个自定义 Python* 代码,类似于遵循 240-dolly-2-instruction 的 Jupyter 笔记本。 OVModelForCausalLM Python* 模块运行时出错。
    发表于 03-05 06:44

    Python绘图Matplotlib快速参考手册

     PYTHON
    发表于 02-07 14:04 0次下载

    Python Connector for InterBase连接解决方案

    适用于 InterBase 的 Python 连接器 Python Connector for InterBase 是一种可靠的连接解决方案,用于从 Python 应用程序访问 InterBase
    的头像 发表于 01-22 14:34 705次阅读

    使用Python实现xgboost教程

    使用Python实现XGBoost模型通常涉及以下几个步骤:数据准备、模型训练、模型评估和模型预测。以下是一个详细的教程,指导你如何在Python中使用XGBoost。 1. 安装XGBoost
    的头像 发表于 01-19 11:21 2213次阅读

    TimSort:一个在标准函数库中广泛使用的排序算法

    排序算法呢? 本文将带你走进 TimSort,一个在标准函数库中广泛使用的排序算法。 这个算法由工程师 Tim Peters 于 2001 年专为 Python 设计,并自 Python 2.3 版本起
    的头像 发表于 01-03 11:42 953次阅读