python之lambda函数使用
一,lambda函数的概念
lambda函数被称为匿名函数,实际就是说没有名称的函数,形式如下:
lambda [arg1 [,arg2,.....argn]]:expression
args指的是参数,expression指条件表达式,根据参数,进行条件表达后输出相应内容。
二,lambda简单使用
普通用法
def detail(x,y):return x*y
# lambda用法
s = lambda x,y:x*y
print(s(3,3))
以上对比我们可以看出如果我们想计算两个数的乘积,需要定义一个函数,传入两个形参,然而lambda也是直接传入两个形参。后面使用冒号,写入表达式,即可得到我们所需要的结果。
lambda还可以写成以下几种方式:
lambda X:None # 函数没有输入参数,输出是None
lambda *args: sum(args) # 输入是任意个数参数,输出是它们的和(隐性要求输入参数必须能进行算术运算)
lambda *kwargs: 1 # 输入是任意键值对参数,输出是1
以下实例可以帮我们更好的理解这一用法:
import time
time.sleep = lambda X:None # 将等待时间设置内容为空
time.sleep(5) # 并不会等待5秒answer = lambda *args: sum(args) # 求和
answer(1,2,3) # 得到结果为1+2+3=6exzample = lambda *kwargs: 1 #设置返回为1
exzample(1,2,3,4) # 得到结果为1
三,lambda结合python内置函数高阶用法
lambda常用高阶函数:
map()函数
reduce() 函数
sorted() 函数
filter() 函数
map()函数:
map() 会根据提供的括号内函数对给出的序列做一一映射。map(function,iterable,…),这个是map函数的形式,function为所指定的函数,iterable为所提供的序列,可为多个序列。
sp = lambda x:x**2 # 定义一个lambda函数
sq = map(sp,[2,3,4,5]) # 结合map()函数使用,依次对列表中的数据求平方
print([i for i in sq]) # 循环打印出sq中的数据
以上代码我们可以看到sp为指定的函数,后面的列表为提供的序列,得到的sq是一个迭代器,使用python2.X的版本可直接得到一个list列表,python3.X的版本是一个迭代器,我们需要循环打印出里面的数据。我们还可以使用多个序列:
sp = lambda x,y:x*y
sq = map(sp,[2,3,4],[3,4,5])
print([i for i in sq])
序列直接存在一一对应关系,得出结果为6,12,20。
reduce() 函数:
reduce() 函数会对参数序列中元素进行累积计算。reduce(function, iterable[, initializer]),function为指定的函数。
from functools import reduce # 引入reduce函数
sp = lambda x,y:x*y # 定义两个数相乘
sq = reduce(sp,[2,3,4]) # 结果计算实际为,2*3*4,输出结果为24
reduce实际运行原理,就是前面的数据对后面的数据累加进行function函数的运算。
from functools import reduce
# 实例1
sp = lambda x,y:x+y
sq = reduce(sp,[2,3,4]) # 输出结果为9
# 实例2
st = lambda x,y:x*10+y
sa = reduce(st,[1,2,3,4]) # 计算过程为1*10+2-->12*10+3-->123*10+4,输出结果为1234
sorted() 函数:
sorted() 函数对所有可迭代的对象进行排序操作,语法类型为sorted(iterable[,…],key[, reverse]]]),iterable为提供的序列,key[,reverse]指根据什么进行排序,排序的规则,reverse = True 降序 , reverse = False 升序(默认)。
list1 = [3,4,1,6,8,4]
list2 = sorted(list1) # 对list1按照0-9排序,结果为[1, 3, 4, 4, 6, 8]
以上是对单字符类型的数据进行排序,下面看下多类型的:
L=[('b',4),('a',3),('c',2),('d',1)]
# x[1]实际是根据里面每个元组的下标进行排序
M = sorted(L,key=lambda x:x[1])
# 我们可以看到里面每个元组下标为1时,都为数字,4,3,2,1,所以得出结果为
# [('d', 1), ('c', 2), ('a', 3), ('b', 4)]
W = sorted(L,key=lambda x:x[1])
# 以上W的结果输出为[('a', 3), ('b', 4), ('c', 2), ('d', 1)],根据字母a-z排序
我们还可以按照两种及多种的排序的规则进行排序:
students = [('jahn', 'A', 15), ('jahn', 'B', 12), ('dave', 'B', 10)]
s = sorted(students,key=lambda x:[x[0],x[1]])
# 输出结果为[('dave', 'B', 10), ('jahn', 'A', 15), ('jahn', 'B', 12)]
以上我们可以看到,是按照X[0],X[1],意思是指,先根据下标0排序,当遇到重复情况下,再依次进行下标为1的排序。
L=[('b',4),('a',3),('c',2),('d',1)]
M = sorted(L,key=lambda x:x[0],reverse=True) # reverse=True倒序排列
# 输出结果为[('d', 1), ('c', 2), ('b', 4), ('a', 3)]
filter() 函数:
filter() 函数是用来过滤掉不符合的序列,保留符合函数规则的序列输出,语法类型为filter(function, iterable)
# 实例1
sp = lambda x: x>5 # 定义函数需要大于5
sq = filter(sp,[2,3,4,6,7]) # sq为迭代器,需要循环遍历出结果
print([i for i in sq]) # 输出结果为[6,7]
# 实例2
sp1 = lambda x: x%3==0 # 判断能否被3整除的数
sq1 = filter(sp,[2,3,4,6,7])
print([i for i in sq]) # 输出结果为[3,6]
以上内容均为lambda匿名函数的基础用法及与其他高阶函数的混合用法,遵循IT界的说法,能用一行代码解决的事,咱就尽量不用两行!
python之lambda函数使用相关推荐
- Python的lambda函数
Python的lambda函数 什么是lambda函数 Python中的匿名函数为lambda函数.一般的函数通过def关键字声明,而匿名函数通过lambda函数声明 怎样使用lambda函数 lam ...
- python lambda函数-Python的Lambda函数用法详解
在Python中有两种函数,一种是def定义的函数,另一种是lambda函数,也就是大家常说的匿名函数.今天我就和大家聊聊lambda函数,在Python编程中,大家习惯将其称为表达式. 1.为什么要 ...
- 细说Python的lambda函数用法,建议收藏
转自:https://zhuanlan.zhihu.com/p/80960485 在Python中有两种函数,一种是def定义的函数,另一种是lambda函数,也就是大家常说的匿名函数.今天我就和大家 ...
- 2020-08-29 Python的lambda函数用法
在Python中有两种函数,一种是def定义的函数,另一种是lambda函数,也就是大家常说的匿名函数.今天我就和大家聊聊lambda函数,在Python编程中,大家习惯将其称为表达式. 1.为什么要 ...
- 关于python的lambda函数、以下选项错误的是_小猿圈python之python期末考试测试题(一)...
又快临近期末考试了,小伙伴们是不是又开始焦虑了呢?挂科怎么办?如果很幸运看到小编的文章,你就偷着乐吧,小编总结出:一般python期末考试老师们最爱考的内容,一定要好好看啊,争取做到python不挂科 ...
- 关于python中lambda函数的描述_关于Python中的lambda函数
lambda是Python编程语言中使用频率较高的一个关键字.那么,什么是lambda?它有哪些用法?网上的文章汗牛充栋,可是把这个讲透的文章却不多.这里,我们通过阅读各方资料,总结了关于Python ...
- [Python]使用 lambda 函数
From:http://woodpecker.org.cn/diveintopython/power_of_introspection/lambda_functions.html 4.7. 使用 la ...
- 【python】lambda函数
匿名函数lambda的用法 Python中,lambda函数也叫匿名函数,及即没有具体名称的函数,它允许快速定义单行函数,类似于C语言的宏,可以用在任何需要函数的地方.这区别于def定义的函数. la ...
- python的lambda函数错误的是_Python 中的 AWS Lambda 函数错误 - AWS Lambda
Python 中的 AWS Lambda 函数错误 当您的代码引发错误时,Lambda 将生成错误的 JSON 表示形式.此错误文档会出现在调用日志中,对于同步调用,它出现在输出中. 例 lambda ...
- python key=lambda函数_使用’key’和lambda表达式的python max函数
我来自OOP背景,尝试学习Python.我使用的是max函数,该函数使用lambda表达式返回Player类型的实例,其中players列表中的totalScore最大. def winner(): ...
最新文章
- 华为云微服务引擎CSE大量新特性上线,诚邀您免费体验
- 从库中图片逐帧插入到场景
- 人民日报钟声:以和平合作守护世界安全
- HTML中字体的垂直排列
- Netty(一)——Netty入门程序
- sql中 in , not in , exists , not exists效率分析
- 2020-09-01
- 【Spark Summit East 2017】使用Spark MLlib和Apache Solr构建实时实体类型识别系统
- 2012怎么设置index.php,配置伪静态.htaccess去掉wordpress固定连接里的index.php
- 【算法4总结】第一章:基础
- matlab 设计 希尔伯特变换器,基于Matlab的FIR型希尔伯特变换器设计
- 技嘉主板bios设置内存图解
- matlab 浮动波动率,Matlab计算股票价格波动率
- 学会配色-色彩配色表
- linux cp omitting 复制,Linux中复制目录报错cp:omitting directory的解决办法
- 人生感悟之心理学家写给女儿的信
- 腾讯云轻量服务器性能评测:配置 8核 16G 18M 带宽
- 剧透, 本届以太坊大会都有哪些牛逼的开发者……
- IP伪装ddos攻击
- java语言就业方向_学习java以后的就业方向有哪些-百度经验
热门文章
- 在线直播系统源码功能设计方案
- java response 图片_SpringBoot使用@ResponseBody返回图片的实现
- 进程间通信IPC、LPC、RPC
- 图论 --- spfa + 链式向前星 (模板题) dlut 1218 : 奇奇与变形金刚
- 深度理解 HashMap 和 Hashtable 的区别
- MySQL数据库高级SQL查询语句(单表查询,多表联合查询)
- 架构师如何教小学生写作文
- 按住Alt键再输入ASCII码数字,放开Alt之后会输入对应的字符
- 隐藏式摄像机探测器金(futureapps Pro 14.0)
- 【Linux】Linux下压缩、解压rar文件