当前位置: 首页 > news >正文

Python函数式编程(三):匿名函数lambda

匿名函数lambda

        在传入函数时, 有些时候, 不需要显式地定义函数, 直接传入匿名函数更方便。在Python 中, 对匿名函数提供了支持。 计算 f(x)=x2 时, 除了定义一个 f(x)的函数外,还可以直接传入匿名函数。 使用 lambda 可以声明一个匿名函数。

        lambda 表达式就是一个简单的函数。 使用 lambda 声明的函数可以返回一个值, 在调用函数时, 直接使用 lambda 表达式的返回值

        lambda arg1,arg2,arg3... : <表达式>

其中 arg1/arg2/arg3 为函数的参数。 <表达式>相当于函数体。 运算结果是: 表达式的运算结果。

       匿名函数有个限制, 就是只能有一个表达式, 不用写 return, 返回值就是该表达式的结果。

       用匿名函数有个好处, 因为函数没有名字, 不必担心函数名冲突。 此外, 匿名函数也是一个函数对象, 也可以把匿名函数赋值给一个变量, 再利用变量来调用该函数

f = lambda a,b,c:a+b+c
print('2+3+4 的结果:',f(2,3,4))

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

也可以这样写

new_list = [x*x for x in list_]

 对list中的元素按照第一个值排序

list_ = sorted(list_, key=lambda x:x[0])

 对list中的元素按照第一个值排序, 如果第一个值相同,按照第二个值排序

list_ = sorted(list_, key=lambda x:(x[0],x[1]))

 

 默认都是升序的

 对list中的元素按照第一个值排序, 如果第一个值相同,按照第二个值降序排序

list_ = sorted(list_, key=lambda x:(x[0],-x[1]))

相关文章:

  • 编程范式—命令式编程与函数式编程
  • Scala语言(二)
  • Scala语言(三)
  • Python——virtualenv/virtualenvwrapper
  • Python多进程(multiprocessing)(mp)(一) —— 进程的创建 join()方法
  • Python多进程(multiprocessing)(mp)(二) —— 创建多进程 继承process类 进程池(Pool)
  • Python多进程(multiprocessing)(mp)(三) —— 进程间通信 Queue队列(Manager)
  • Python多线程(二): 线程同步 生产者消费者模式 ThreadLocal线程局部变量
  • 爬虫url去重策略
  • 爬虫中的深搜和广搜
  • Objective-C
  • MyOS(四):让内核突破512字节的限制
  • Go语言实现并发(协程)
  • 汇编语言相关知识
  • 面向对象的意义
  • Java 网络编程(2):UDP 的使用
  • Javascript弹出层-初探
  • React Native移动开发实战-3-实现页面间的数据传递
  • Spark in action on Kubernetes - Playground搭建与架构浅析
  • 从 Android Sample ApiDemos 中学习 android.animation API 的用法
  • 物联网链路协议
  • 想晋级高级工程师只知道表面是不够的!Git内部原理介绍
  • 验证码识别技术——15分钟带你突破各种复杂不定长验证码
  • 移动端 h5开发相关内容总结(三)
  • 用 vue 组件自定义 v-model, 实现一个 Tab 组件。
  • 在Unity中实现一个简单的消息管理器
  • mysql面试题分组并合并列
  • Python 之网络式编程
  • Spark2.4.0源码分析之WorldCount 默认shuffling并行度为200(九) ...
  • 你学不懂C语言,是因为不懂编写C程序的7个步骤 ...
  • #!/usr/bin/python与#!/usr/bin/env python的区别
  • #控制台大学课堂点名问题_课堂随机点名
  • #中国IT界的第一本漂流日记 传递IT正能量# 【分享得“IT漂友”勋章】
  • (1)(1.8) MSP(MultiWii 串行协议)(4.1 版)
  • (Forward) Music Player: From UI Proposal to Code
  • (MATLAB)第五章-矩阵运算
  • (Matlab)基于蝙蝠算法实现电力系统经济调度
  • (python)数据结构---字典
  • (八)光盘的挂载与解挂、挂载CentOS镜像、rpm安装软件详细学习笔记
  • (多级缓存)多级缓存
  • (附源码)ssm本科教学合格评估管理系统 毕业设计 180916
  • (黑客游戏)HackTheGame1.21 过关攻略
  • (实战篇)如何缓存数据
  • (四)【Jmeter】 JMeter的界面布局与组件概述
  • (转)Android学习系列(31)--App自动化之使用Ant编译项目多渠道打包
  • (转)为C# Windows服务添加安装程序
  • (转载)Linux 多线程条件变量同步
  • .[hudsonL@cock.li].mkp勒索病毒数据怎么处理|数据解密恢复
  • .bashrc在哪里,alias妙用
  • .bat批处理(三):变量声明、设置、拼接、截取
  • .Net 6.0 处理跨域的方式
  • .Net Core缓存组件(MemoryCache)源码解析
  • .NET6使用MiniExcel根据数据源横向导出头部标题及数据
  • /bin/bash^M: bad interpreter: No such file or directory
  • /ThinkPHP/Library/Think/Storage/Driver/File.class.php  LINE: 48