关于python中lambda函数的描述,python中lambda的用法
本文主要介绍python数据操作的lambda表达式的细节。文章基于python的相关资料,展开了lambda表达式的具体内容。感兴趣的朋友可以参考一下。
00-1010 1前言2 Lambda的特点3 Lambda的一些用途3.1映射函数3.2归约函数3.3排序函数3.4过滤函数4总结
目录
在Java和js中,lambda arrow函数是一个很常见的操作,这个表达式非常好用。python的语法里也有应用场景。lambda是python保留的一个关键字,凡是带有这个关键字的都视为lambda。
其表现形式如下:
# lambda是表达式,arg是用户输入参数,expression是函数表达式。
[arg 1[,arg2,argn]]:表达式
1 前言
python 中 lambda 表达式的特性如下所示:
表达式是匿名的,lambda只是一个表达式,类似但没有名字。表达式有输入和输出,输入是arg的参数,输出是表达式求值的结果。有一个命名空间,参数变量只能在命名空间内获取和操作。常见的表达式如下所示:
lambda x,y: x y#函数有x和y输入以及x y输出。
Lambda *args: sum(args)#输入是任意数量的参数,输出是几个参数之和,输入参数必须是数字。
Lambda * * kwargs3360 2 #输入是任意键-值对参数,输出结果是固定值。
2 lambda 的特性
3 lambda 的一些用法
map函数根据提供的函数逐个调用iterable参数,返回iterable对象结果其语法和使用方式如下所示:.
# function代表函数,iterable代表一个iterable对象,或者可以传入多个对象。
map(函数,可迭代,)
#只有一个迭代参数的情况
定义cal_num(x):
返回x ** 2 2 * x - 3
#准备好的数据
read_list=[2,3,4]
#因为map的结果是迭代对象,所以转换成list对象来打印结果。
re_list=list(map(cal_num,read_list))
#计算结果[5,12,21]
打印(重新列表)
#对于多个迭代参数,逐个计算和。
定义cal_add_num(x,y):
返回x y
#准备好的数据
read_list=[2,3,4]
re_list=list(map(cal_add_num,read_list,read_list))
#计算结果[4,6,8]
打印(重新列表)
#对于多次迭代的运算,还可以使用zip处理多个可迭代对象,形成元组对象进行循环计算。
result_list=[]
对于k1,k2在zip(read_list,read_list):
结果列表附加(k1 k2)
3.1 map 函数
reduce函数会累加计算参数表中的元素,通常的方式是对一个数组列表求和。上一篇文章描述的java Stream关于reduce的操作和这个例子一样,其中lambda可以看作是sequence的派生:
# function代表函数,iterable代表可迭代对象,initialize。
r 指定起始值
reduce(function, iterable[, initializer])
# 计算数组之和,lambda 写法,起始值为 10, 计算结果为 25
res = reduce(lambda x, y: x + y, [1, 2, 3, 4, 5], 10)
这里需要说明的是,在 python3 中 reduce 已经从全局命名空间中移除,被放在了 functools 模块中,如果需要使用,则需要进行引入from functools import reduce
。
3.3 sorted 函数
sorted 函数,顾名思义就是对可迭代对象进行排序操作,其语法格式和用法如下所示:
# iterable 为可迭代对象 cmp 为比较函数 排序字段和排序顺序sorted(iterable[, cmp[, key[, reverse]]])
# 1、简单排序
a = [5,7,6,3,4,1,2]
# 使用sorted,保留原列表,不改变列表a的值
# 排序结果为 [1, 2, 3, 4, 5, 6, 7]
b = sorted(a)
# 2、使用 lambda 指定排序函数方式排序
# 待排序对象
x_list = [(b,2),(a,1),(c,3),(d,4)]
# 排序结果:[(a, 1), (b, 2), (c, 3), (d, 4)]
y_list = sorted(x_list, cmp=lambda x,y:cmp(x[1],y[1]))
# 3、利用参数 key 排序,依然使用 lambda 指定元祖的第一个数据
# 计算结果:[(a, 1), (b, 2), (c, 3), (d, 4)]
z_list = sorted(x_list, key=lambda x:x[1])
# 4、指定排序顺序
user_list = [(john, A, 15), (jane, B, 12), (dave, B, 10)]
# 排序结果 [(john, A, 15), (jane, B, 12), (dave, B, 10)]
re_list = sorted(user_list, key=lambda s: s[2], reverse=True)
3.4 filter 函数
filter 函数相对来说就比较简单了,主要就是过滤操作,过滤掉不符合表达式的数据,得到最终的结果。
# function 为过滤函数,返回结果为 true 或者 false, iterable 为可迭代对象filter(function, iterable)
# 判断是否为奇数
def is_odd(n):
return n % 2 == 1
newlist = filter(is_odd, [1, 2, 3, 4])
print(list(newlist))
4 总结
文章主要讲述了 python 的 lambda 的相关操作,主要就是 lambda 表达式与 map、filter、 sorted、 reduce 函数的配合使用。
到此这篇关于python数据操作之 lambda表达式详情的文章就介绍到这了,更多相关python lambda表达式内容请搜索盛行IT软件开发工作室以前的文章或继续浏览下面的相关文章希望大家以后多多支持盛行IT软件开发工作室!
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。