python中lambda表达式的使用方法(匿名函数)

python 专栏收录该内容
66 篇文章 0 订阅

lambda函数简介

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

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

# 数字字符串排序貌似还是以字符顺序而不是数字大小来排的,
# 可能要先转化为数字(而re.findall('\((.*?)\)', x)返回的是字符串列表,要把它转换成数字列表)
filenames.sort(key=lambda x: list(map(eval, re.findall('\((.*?)\)', x))))

示例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]
  • 0
    点赞
  • 0
    评论
  • 2
    收藏
  • 一键三连
    一键三连
  • 扫一扫,分享海报

相关推荐
©️2020 CSDN 皮肤主题: 深蓝海洋 设计师:CSDN官方博客 返回首页
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值