当前位置:首页 > 科技  > 软件

一篇文章带你搞定Python匿名函数

来源: 责编: 时间:2024-04-19 09:27:26 278观看
导读一、前言当在传入函数时,有些时候,不需要显式地定义函数,直接传入匿名函数更方便。二、匿名函数在Python中,对匿名函数提供了有限支持。还是以map()函数为例,计算f(x)=x2时,除了定义一个f(x)的函数外,还可以直接传入匿名函数

一、前言

当在传入函数时,有些时候,不需要显式地定义函数,直接传入匿名函数更方便。2xS28资讯网——每日最新资讯28at.com

2xS28资讯网——每日最新资讯28at.com

二、匿名函数

在Python中,对匿名函数提供了有限支持。还是以map()函数为例,计算f(x)=x2时,除了定义一个f(x)的函数外,还可以直接传入匿名函数:2xS28资讯网——每日最新资讯28at.com

print(list(map(lambda x: x * x, [1, 2, 3, 4, 5, 6, 7, 8, 9])))

2xS28资讯网——每日最新资讯28at.com

通过对比可以看出,匿名函数lambda x: x  x实际上就是:2xS28资讯网——每日最新资讯28at.com

def f(x):    return x * x

注:2xS28资讯网——每日最新资讯28at.com

关键字lambda表示匿名函数,冒号前面的x表示函数参数。2xS28资讯网——每日最新资讯28at.com

匿名函数有个限制:

就是只能有一个表达式,不用写return,返回值就是该表达式的结果。2xS28资讯网——每日最新资讯28at.com

匿名函数有个好处:

因为函数没有名字,不必担心函数名冲突。此外,匿名函数也是一个函数对象,也可以把匿名函数赋值给一个变量,再利用变量来调用该函数:2xS28资讯网——每日最新资讯28at.com

f = lambda x: x * xprint(f)print(f(5))

2xS28资讯网——每日最新资讯28at.com

同样,也可以把匿名函数作为返回值返回,比如:2xS28资讯网——每日最新资讯28at.com

def build(x, y):    return lambda: x * x + y * y

匿名函数的使用

匿名函数通常被用作高阶函数(higher-order function,参数为函数的函数)的参数。比如,几个内置函数:filter(),map(),reduce()。下面分别看看这几个函数的用法及达到相同效果的python另一种特征的用法2xS28资讯网——每日最新资讯28at.com

1. filter函数

list = [1, 2, 3]result = filter(lambda x: x % 2 == 0, list)print(result)result = [x for x in list if x % 2 == 0]print(result)

2xS28资讯网——每日最新资讯28at.com

2. map函数

result = map(lambda x: x*2, list)print(result)result = [x*2 for x in list]print(result)

2xS28资讯网——每日最新资讯28at.com

注:2xS28资讯网——每日最新资讯28at.com

map和filter函数都可以使用列表推导式(list comprehension)代替。2xS28资讯网——每日最新资讯28at.com

据说,当年lambda是一个Lisp程序员给python加的,而Guido是强烈反对的,最中意的是列表推导式。2xS28资讯网——每日最新资讯28at.com

3. 跳转表(jump table)

lambda的另一种用法是用来编写跳转表,也就是行为列表或字典,能按需执行特定的动作。2xS28资讯网——每日最新资讯28at.com

key = "get" {"abc":(lambda : 2 + 2),"bcd" : (lambda : 3 + 3), "get" : (lambda : 4 + 4)}[key]()8

2xS28资讯网——每日最新资讯28at.com

三、总结

本文基于Python基础,介绍了在实际中匿名函数的使用,介绍了常见的匿名函数, filter函数,map函数,通过一个案例 ( 跳转表) 的分析 ,代码的演示,进行详细的讲解。2xS28资讯网——每日最新资讯28at.com

Python对匿名函数的支持有限,只有一些简单的情况下可以使用匿名函数。使用Python语言 ,能够让读者更好的理解。2xS28资讯网——每日最新资讯28at.com

欢迎大家积极尝试,有时候看到别人实现起来很简单,但是到自己动手实现的时候,总会有各种各样的问题,切勿眼高手低,勤动手,才可以理解的更加深刻。2xS28资讯网——每日最新资讯28at.com

本文链接:http://www.28at.com/showinfo-26-84011-0.html一篇文章带你搞定Python匿名函数

声明:本网页内容旨在传播知识,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。邮件:2376512515@qq.com

上一篇: 接口扩展与设计模式:为何早点学习设计模式如此重要

下一篇: 探索未来计算趋势:qutip模块助力量子计算技术发展!

标签:
  • 热门焦点
  • 红魔电竞平板评测:大屏幕硬实力

    前言:三年的疫情因为要上网课的原因激活了平板市场,如今网课的时代已经过去,大家的生活都恢复到了正轨,这也就意味着,真正考验平板电脑生存的环境来了。也就是面对着这种残酷的
  • 6月iOS设备性能榜:M2稳居榜首 A系列只能等一手3nm来救

    没有新品发布,自然iOS设备性能榜的上榜设备就没有什么更替,仅仅只有跑分变化而产生的排名变动,毕竟苹果新品的发布节奏就是这样的,一年下来也就几个移动端新品,不会像安卓厂商,一
  • JavaScript 混淆及反混淆代码工具

    介绍在我们开始学习反混淆之前,我们首先要了解一下代码混淆。如果不了解代码是如何混淆的,我们可能无法成功对代码进行反混淆,尤其是使用自定义混淆器对其进行混淆时。什么是混
  • SpringBoot中使用Cache提升接口性能详解

    环境:springboot2.3.12.RELEASE + JSR107 + Ehcache + JPASpring 框架从 3.1 开始,对 Spring 应用程序提供了透明式添加缓存的支持。和事务支持一样,抽象缓存允许一致地使用各
  • 三言两语说透设计模式的艺术-单例模式

    写在前面单例模式是一种常用的软件设计模式,它所创建的对象只有一个实例,且该实例易于被外界访问。单例对象由于只有一个实例,所以它可以方便地被系统中的其他对象共享,从而减少
  • 电视息屏休眠仍有网络上传 爱奇艺被质疑“薅消费者羊毛”

    记者丨宁晓敏 见习生丨汗青出品丨鳌头财经(theSankei) 前不久,爱奇艺发布了一份亮眼的一季报,不仅营收和会员营收创造历史最佳表现,其运营利润也连续6个月实现增长。自去年年初
  • 一条抖音4亿人围观 ! 这家MCN比无忧传媒还野

    作者:Hiu 来源:互联网品牌官01 擦边少女空降热搜,幕后推手曝光被网友誉为“纯欲天花板”的女网红井川里予,近期因为一组哥特风照片登上热搜,引发了一场互联网世界关于
  • 三星电子Q2营收60万亿韩元 存储业务营收同比仍下滑超过50%

    7月27日消息,据外媒报道,从三星电子所发布的财报来看,他们主要利润来源的存储芯片业务在今年二季度仍不乐观,营收同比仍在大幅下滑,所在的设备解决方案
  • 上海举办人工智能大会活动,建设人工智能新高地

    人工智能大会在上海浦江两岸隆重拉开帷幕,人工智能新技术、新产品、新应用、新理念集中亮相。8月30日晚,作为大会的特色活动之一的上海人工智能发展盛典人工
Top