国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Python > 正文

Python lambda表達式用法實例分析

2020-02-16 00:19:18
字體:
來源:轉載
供稿:網友

本文實例講述了Python lambda表達式用法。分享給大家供大家參考,具體如下:

lambda表達式,通常是在需要一個函數,但是又不想費神去命名一個函數的場合下使用,也就是指匿名函數。

lambda所表示的匿名函數的內容應該是很簡單的,如果復雜的話,干脆就重新定義一個函數了,使用lambda就有點過于執拗了。

lambda就是用來定義一個匿名函數的,如果還要給他綁定一個名字的話,就會顯得有點畫蛇添足,通常是直接使用lambda函數。如下所示:

add = lambda x, y : x+yadd(1,2) # 結果為3

那么到底要如何使用lambda表達式呢?

1、應用在函數式編程中

Python提供了很多函數式編程的特性,如:map、reduce、filter、sorted等這些函數都支持函數作為參數,lambda函數就可以應用在函數式編程中。如下:

# 需求:將列表中的元素按照絕對值大小進行升序排列list1 = [3,5,-4,-1,0,-2,-6]sorted(list1, key=lambda x: abs(x))

運行結果:

[0, -1, -2, 3, -4, 5, -6]

當然,也可以如下:

list1 = [3,5,-4,-1,0,-2,-6]def get_abs(x):  return abs(x)sorted(list1,key=get_abs)

只不過這種方式的代碼看起來不夠Pythonic

2、應用在閉包中

def get_y(a,b):   return lambda x:ax+by1 = get_y(1,1)y1(1) # 結果為2

當然,也可以用常規函數實現閉包,如下:

def get_y(a,b):  def func(x):    return ax+b  return funcy1 = get_y(1,1)y1(1) # 結果為2

只不過這種方式顯得有點啰嗦。

那么是不是任何情況下lambda函數都要比常規函數更清晰明了呢?

肯定不是。

Python之禪中有這么一句話:Explicit is better than implicit(明了勝于晦澀),就是說那種方式更清晰就用哪一種方式,不要盲目的都使用lambda表達式。

更多關于Python相關內容可查看本站專題:《Python數據結構與算法教程》、《Python Socket編程技巧總結》、《Python函數使用技巧總結》、《Python字符串操作技巧匯總》及《Python入門與進階經典教程》

希望本文所述對大家Python程序設計有所幫助。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 静安区| 双流县| 木里| 东至县| 太保市| 广河县| 平舆县| 金溪县| 锦州市| 万源市| 涞水县| 长丰县| 施秉县| 奉新县| 东方市| 通道| 神池县| 云和县| 宝鸡市| 左云县| 内江市| 伊通| 安丘市| 晋城| 富平县| 安泽县| 富顺县| 台中县| 亳州市| 喜德县| 乐业县| 兴安盟| 海门市| 宁武县| 彭阳县| 义乌市| 旌德县| 花莲县| 布拖县| 泗洪县| 察隅县|