电脑知识|欧美黑人一区二区三区|软件|欧美黑人一级爽快片淫片高清|系统|欧美黑人狂野猛交老妇|数据库|服务器|编程开发|网络运营|知识问答|技术教程文章 - 好吧啦网

您的位置:首頁技術文章
文章詳情頁

python 匿名函數與三元運算學習筆記

瀏覽:4日期:2022-07-07 11:30:49

匿名函數

匿名函數就是不需要顯示式的指定函數名

首先看一行代碼:

def calc(x,y): return x*yprint(calc(2,3)) # 換成匿名函數 calc = lambda x,y:x*yprint(calc(2,3))

你也許會說,用上這個東西沒感覺有毛方便呀, 。。。。呵呵,如果是這么用,確實沒毛線改進,不過匿名函數主要是和其它函數搭配使用的呢,如下

res = map(lambda x:x**2,[1,2,3,4,5])print(list(res))# 結果:# [1, 4, 9, 16, 25]for i in res: print(i)# 結果:# 1# 4# 9# 16# 25

匿名函數的作用:

1,節省代碼

2,看著高級

lambda表達式

lambda原型為:lambda參數:操作(參數)

lambda函數也叫匿名函數,即沒有具體名稱的函數,他允許快速定義單行函數,可以用在任何需要函數的地方。這區別于def定義的函數。

lambda和def的區別:

def 創建的方法是有名稱的,而lambda沒有 lambda會返回一個函數對象,但這個對象不會賦值給一個標識符,而def則會把函數對象賦值給一個變量 lambda只是一個表達式,而def則是一個語句 lambda表示式“:” 后面,只能有一個表達式,def則可以有多個。 像 if 或者 for 或者 print 等語句不能用于lambda中,def可以 lambda一般用來定義簡單的函數,而def可以定義復雜的函數

>>> def add(x,y): #定義一個加法函數 return x+y #返回兩個參數的相加的值 >>> z=f(3,4) >>> print(z)7 #調用加法函數返回7>>> lambda x,y:x+y<function <lambda> at 0x0000020F385B86A8> #可以看到lambda是一個 function(函數)類對象>>> f=lambda x,y:x+y #功能實現的跟add(x,y)一樣 >>> f(1,2)3>>> f(3,4)7>>> def multiply(x,y): return x*y >>> multiply(3,4)12>>> multiply=lambda x,y:x*y>>> multiply(3,4)12>>> def subtract(x,y): return x-y >>> subtract(3,4)-1>>> subtract=lambda x,y:x-y>>> subtract(3,4)-1 >>> def divide(x,y): return x/y >>> divide(4,2)2.0>>> divide=lambda x,y:x/y>>> divide(4,2)2.0 #上面的乘法函數,減法函數,除法函數都可以用lambda表達式來代替,更方便

lambda 的應用

# 2.lambda 的應用# ---CASE 1fs = map(lambda i:(lambda j: i*j), range(6))print([f(2) for f in fs]) #---CASE 2fs = [lambda j:i*j for i in range(6)]print([f(2) for f in fs]) #---CASE 3fs = []for i in range(6): fs.append(lambda j:i*j) if i==3:breakprint([f(2) for f in fs]) #---CASE 4fs = [(lambda i:lambda j:i*j)(i) for i in range(6)]print([f(2) for f in fs]) # 結果:# [0, 2, 4, 6, 8, 10]# [10, 10, 10, 10, 10, 10]# [6, 6, 6, 6]# [0, 2, 4, 6, 8, 10]

map()函數

下面我們看map()函數,它可以將一個函數映射到一個可枚舉類型上面。沿用上面給出的a和f,可以寫:

map(f , a)

也就是將函數 f 依次套在 a 的每一個元素上面,獲得結果 。如果用lambda表達式來替換f,就變成了:

map( lambda x : x + 1, [1, 2, 3] )

是不是就一目了然。

Apply() 函數

Python中apply函數的格式為: apply(func , *args , **kwargs)

當然,func可以是匿名函數。

用途:當一個函數的參數存在于一個元組或者一個字典中時,用來間接的調用這個函數,并將元素或者字典的參數按照順序傳遞給參數。

解析:args是一個包含按照函數所需參數傳遞的位置參數的一個元組。簡單來說,假如A函數的函數位置為A(a =1 , b =2),那么這個元組中就必須嚴格按照這個參數的位置順序進行傳遞(a=3,b=4),而不能是(b=4,a=3)這樣的順序。kwargs是一個包含關鍵字參數的字典,而其中args如果不傳遞,kwargs需要傳遞,則必須在args的位置留空。

apply的返回值就是函數func函數的返回值。

def function(a,b): print(a,b) apply(function,(’good’,’better’)) apply(function,(2,3+6)) apply(function,(’cai’,’quan’)) apply(function,(’cai’,),{’b’:’caiquan’}) apply(function,(),{’a’:’caiquan’,’b’:’Tom’})

輸出結果:

(’good’, ’better’)(2, 9)(’cai’, ’quan’)(’cai’, ’caiquan’)(’caiquan’, ’Tom’)

三元運算

三元運算又稱三目運算,是對簡單的條件語句的簡寫。

舉個例子:簡單條件語句 ————> 三元運算

if 條件成立: val = 1else: val = 2

val = 1 if 條件成立 else 2

python中的三元運算符不像其他語言,其他的一般都是

判定條件?為真時的結果:為假時的結果

result = 5 >3?1:0

而在python中的格式為:

為真時候的結果 if 判定條件 else 為假時的結果<br>result =x if condition else y

如:

1 if 5>0 else 0

def func(x,y): ’’’定義一個函數,如果x大于y,返回x-y,否則,返回y-x’’’ return x-y if x>y else y-xr1 = func(10,18)r2 = func(18,12)print(r1)print(r2)結果:86

以上就是python 匿名函數與三元運算學習筆記的詳細內容,更多關于python 匿名函數與三元運算的資料請關注好吧啦網其它相關文章!

標簽: Python 編程
相關文章:
主站蜘蛛池模板: 耳模扫描仪-定制耳机设计软件-DLP打印机-asiga打印机-fitshape「飞特西普」 | 电缆接头_防水接头_电缆防水接头 - 乐清市新豪电气有限公司 | 早报网| 档案密集柜_手动密集柜_智能密集柜_内蒙古档案密集柜-盛隆柜业内蒙古密集柜直销中心 | 德国进口电锅炉_商用电热水器_壁挂炉_电采暖器_电热锅炉[德国宝] | 维泰克Veertek-锂电池微短路检测_锂电池腐蚀检测_锂电池漏液检测 | 扬州汇丰仪表有限公司 | 温控器生产厂家-提供温度开关/热保护器定制与批发-惠州市华恺威电子科技有限公司 | 山东led显示屏,山东led全彩显示屏,山东LED小间距屏,临沂全彩电子屏-山东亚泰视讯传媒有限公司 | 手术示教系统-数字化手术室系统-林之硕医疗云智能视频平台 | 万濠影像仪(万濠投影仪)百科-苏州林泽仪器 | 存包柜厂家_电子存包柜_超市存包柜_超市电子存包柜_自动存包柜-洛阳中星 | 华溶溶出仪-Memmert稳定箱-上海协烁仪器科技有限公司 | 船老大板材_浙江船老大全屋定制_船老大官网 | 东莞市天进机械有限公司-钉箱机-粘箱机-糊箱机-打钉机认准东莞天进机械-厂家直供更放心! | 3D全息投影_地面互动投影_360度立体投影_水幕灯光秀 | 广东银虎 蜂窝块状沸石分子筛-吸附脱硫分子筛-萍乡市捷龙环保科技有限公司 | 光伏家 - 太阳能光伏发电_分布式光伏发电_太阳能光伏网 | 蜘蛛车-高空作业平台-升降机-高空作业车租赁-臂式伸缩臂叉装车-登高车出租厂家 - 普雷斯特机械设备(北京)有限公司 | 杭州营业执照代办-公司变更价格-许可证办理流程_杭州福道财务管理咨询有限公司 | ★店家乐|服装销售管理软件|服装店收银系统|内衣店鞋店进销存软件|连锁店管理软件|收银软件手机版|会员管理系统-手机版,云版,App | 防水试验机_防水测试设备_防水试验装置_淋雨试验箱-广州岳信试验设备有限公司 | 温控器生产厂家-提供温度开关/热保护器定制与批发-惠州市华恺威电子科技有限公司 | 网站建设-高端品牌网站设计制作一站式定制_杭州APP/微信小程序开发运营-鼎易科技 | 密度电子天平-内校-外校电子天平-沈阳龙腾电子有限公司 | 耐力板-PC阳光板-PC板-PC耐力板 - 嘉兴赢创实业有限公司 | 水压力传感器_数字压力传感器|佛山一众传感仪器有限公司|首页 | 浙江皓格药业有限公司| 盘式曝气器-微孔曝气器-管式曝气器-曝气盘-斜管填料 | 郑州市前程水处理有限公司 | 耐酸泵,耐酸泵厂家-淄博华舜耐腐蚀真空泵 | 数字展示在线_数字展示行业门户网站 | 袋式过滤器,自清洗过滤器,保安过滤器,篮式过滤器,气体过滤器,全自动过滤器,反冲洗过滤器,管道过滤器,无锡驰业环保科技有限公司 | 深圳市宏康仪器科技有限公司-模拟高空低压试验箱-高温防爆试验箱-温控短路试验箱【官网】 | 滚筒烘干机_转筒烘干机_滚筒干燥机_转筒干燥机_回转烘干机_回转干燥机-设备生产厂家 | 济南ISO9000认证咨询代理公司,ISO9001认证,CMA实验室认证,ISO/TS16949认证,服务体系认证,资产管理体系认证,SC食品生产许可证- 济南创远企业管理咨询有限公司 郑州电线电缆厂家-防火|低压|低烟无卤电缆-河南明星电缆 | 移动厕所租赁|移动卫生间|上海移动厕所租赁-家瑞租赁 | 首页_欧瑞传动官方网站--主营变频器、伺服系统、新能源、软起动器、PLC、HMI | 定量包装秤,吨袋包装称,伸缩溜管,全自动包装秤,码垛机器人,无锡市邦尧机械工程有限公司 | 数控走心机-走心机价格-双主轴走心机-宝宇百科 | 全国冰箱|空调|洗衣机|热水器|燃气灶维修服务平台-百修家电 | 穿线管|波纹穿线管|包塑金属软管|蛇皮管?闵彬专注弱电工程? | 带式压滤机_污泥压滤机_污泥脱水机_带式过滤机_带式压滤机厂家-河南恒磊环保设备有限公司 |