文章目录

  • lambda函数简介
  • 示例1:将存有文件名的字符串列表,运用正则表达式方法提取文件名中的数字,按照数字大小将文件名字符串列表重新排序
  • 示例2:将存有hsv颜色空间的颜色元组列表,转换成rgb颜色空间的颜色元组列表
  • 示例3:将存有两个数字的元组列表,运用lambda表达式分别计算输出其中两个数字的和

lambda函数简介

lambda表达式,被称为匿名函数,如:lambda x, y : x+y,冒号前的x、y是所需参数,冒号后的x+y是所要运行的表达式,返回值就是计算后的结果,如:(lambda x, y : x+y)(1, 2),结果为3。

示例1:将存有文件名的字符串列表,运用正则表达式方法提取文件名中的数字,按照数字大小将文件名字符串列表重新排序

参见:如何将yolo的标注(annotations).txt 坐标转换成tensorflow-yolov3(YunYang1994)的.txt 标注坐标?

# (3)用lambda配合正则表达式(将filenames中对象一一取出赋给x,通过冒号后的表达式运算后将结果返回给key)
# 数字字符串排序貌似还是以字符顺序而不是数字大小来排的,
# 可能要先转化为数字(而re.findall('\((.*?)\)', x)返回的是字符串列表,要把它转换成数字列表)
filenames.sort(key=lambda x: list(map(eval, re.findall('\((.*?)\)', x))))

lambda表达式的使用方法

示例2:将存有hsv颜色空间的颜色元组列表,转换成rgb颜色空间的颜色元组列表

import colorsys
hsv_tuples=[(0.0, 1.0, 1.0),(0.5,0.5,0.5)]
print(list(map(lambda x:colorsys.hsv_to_rgb(*x),hsv_tuples)))
结果:
[(1.0, 0.0, 0.0), (0.25, 0.5, 0.5)]
参数前带个*表示元组,
里是因为colorsys.hsv_to_rgb函数所需传入对象必须是元组,map函数则要求hsv_tuples为可迭代对象

示例3:将存有两个数字的元组列表,运用lambda表达式分别计算输出其中两个数字的和

tuples=[(1,2),(3,4)]
print(list(map(lambda x:((lambda a,b:a+b)(*x)),tuples)))
结果:
[3, 7]
这里使用了两次嵌套的lambda表达式,其中借鉴了lambda表达式的用法之一:
add = lambda x, y : x+y
add(1,2)  # 结果为3

当然,用下面这种方法也是可以的:

tuples=[(1,2),(3,4)]
print(list(map(lambda x:x[0]+x[1],tuples)))        # [3, 7]

参考文章:python – lambda表达式

python lambda表达式的使用方法(匿名函数)相关推荐

  1. python Lambda 表达式

    来源:http://www.cnblogs.com/jydeng/p/4145188.html 一.lambda函数 1.lambda函数基础: lambda函数也叫匿名函数,即,函数没有具体的名称, ...

  2. Python--三元表达式、列表推导式、生成器表达式、递归、匿名函数、内置函数...

    三元表达式 列表推导式 生成器表达式 递归与二分法 匿名函数 内置函数 一.三元表达式 name=input('姓名>>: ') res='True' if name == 'lee' e ...

  3. python -- lambda表达式

    lambda表达式,通常是在需要一个函数,但是又不想费神去命名一个函数的场合下使用,也就是指匿名函数. lambda所表示的匿名函数的内容应该是很简单的,如果复杂的话,干脆就重新定义一个函数了,使用l ...

  4. Python lambda表达式用法

    python lambda表达式简单用法 lambda表达式简单用法 lambda是什么? lambda表达式在sort函数中的使用 内置函数 lambda是什么? 看个例子: g = lambda ...

  5. Python lambda表达式及用法

    lambda 表达式是现代编程语言争相引入的一种语法,如果说函数是命名的.方便复用的代码块,那么 lambda 表达式则是功能更灵活的代码块,它可以在程序中被传递和调用. 回顾局部函数 回顾<P ...

  6. Lambda表达式接口更新方法引用函数式接口Stream流

    Lambda表达式&接口更新&方法引用&函数式接口&Stream流 Lambda 1.程序启动三种不同的表现形式 2.Lambda表达式的标准格式 3.练习 Lambd ...

  7. lambda表达式方法泛型_模板方法模式–使用Lambda表达式,默认方法

    lambda表达式方法泛型 模板方法模式是Erich Gamma,Richard Helm,Ralph Johnson和John Vlissides在著名的< 设计模式>一书中解释的23种 ...

  8. 模板方法模式–使用Lambda表达式,默认方法

    模板方法模式是Erich Gamma,Richard Helm,Ralph Johnson和John Vlissides在著名的< 设计模式>一书中解释的23种设计模式之一. 这种模式的意 ...

  9. 混淆概念详细解析:Python中类、对象、方法、函数和属性的区别和理解

    混淆概念详细解析:Python中类.对象.方法.函数和属性的区别和理解 前言 一.类.对象.方法.函数和属性的区别和理解 二.一个类的简单案例和对各种概念的理解 三.总结 欢迎学习交流! 邮箱: z- ...

最新文章

  1. ML基石_10_LogisticRegression
  2. 腾讯比Groupon更想要
  3. linux 脚本中除法运算符,Linux中Shell的算数运算符和位运算符用法笔记
  4. HTTP中常用响应头
  5. python爬虫网页pdf_爬虫实战【3】Python-如何将html转化为pdf(PdfKit)
  6. ip动态分配痕迹会保留多久_段王爷《新国潮七剑》为你解剖新国潮还能潮多久?...
  7. cocos2d-x-3.0 build不成功
  8. 蓝桥杯 ADV-135 算法提高 三角形面积
  9. Access to the path ‘‘ is denied.解决方案
  10. scala代码示例_Scala注释示例
  11. 如何使用Spring Bean Configuration File调用构造方法并给参数赋值
  12. 怎么对ChannelHandler做测试?
  13. mysql grant tables_使用SKIP-GRANT-TABLES 解决 MYSQL ROOT密码丢失
  14. Linux内核详解与内核优化方案
  15. u盘服务器安装win7系统安装教程,最简单的u盘装win7系统详细教程及步骤
  16. ps的选区和相关工具
  17. 游戏开发中2D场景下实现伪3D碰撞检测方法
  18. Spring Cloud概念+案例(eureka注册+拉取、ribbon负载均衡+重试)、netfix各组件介绍【上】
  19. 解决IDEA不能自动导包的问题
  20. swift版QQ音乐播放器(二)

热门文章

  1. 视频文件详细信息python3_如何用python3爬取自己的收藏夹视频信息
  2. python需要学数据结构吗_Python新手学习基础之数据结构-对数据结构的认知
  3. js模板引擎_VueSSRNuxt.js
  4. 创建销售订单BAPI一些心得
  5. 42、Power Query-Text.Remove函数应用
  6. 13、Power Query-逆透视列的实例(下)
  7. SAP一句话入门:Human Resource
  8. SAP 自定义 Table 中的小陷阱
  9. 这个搞定系统监控的妙招,不来学可惜了
  10. linux启用root用户,Ubuntu 下启用root账号与修改密码