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

首頁 > 編程 > Python > 正文

簡單了解Python中的幾種函數

2020-02-16 10:34:41
字體:
來源:轉載
供稿:網友

幾個特殊的函數(待補充)

python是支持多種范型的語言,可以進行所謂函數式編程,其突出體現在有這么幾個函數: filter、map、reduce、lambda、yield

lambda

>>> g = lambda x,y:x+y #x+y,并返回結果>>> g(3,4)7>>> (lambda x:x**2)(4) #返回4的平方16

lambda函數的使用方法:

在lambda后面直接跟變量

變量后面是冒號

冒號后面是表達式,表達式計算結果就是本函數的返回值

冒號后面是表達式,表達式計算結果就是本函數的返回值

比如,要打印一個list,里面依次是某個數字的1次方,二次方,三次方,四次方。用lambda可以這樣做:

>>> lamb = [ lambda x:x,lambda x:x**2,lambda x:x**3,lambda x:x**4 ]>>> for i in lamb:...   print i(3),... 3 9 27 81

map

map()是python的一個內置函數,它的基本樣式是:

map(func,seq)

func是一個函數,seq是一個序列對象。在執行的時候,序列對象中的每個元素,按照從左到右的順序,依次被取出來,并放入

到func那個函數里面,并將func的返回值依次存到一個list中。如

>>> items = [1,2,3,4,5]>>> squared = []>>> for i in items:...   squared.append(i**2)... >>> squared[1, 4, 9, 16, 25]>>> def sqr(x): return x**2... >>> map(sqr,items)[1, 4, 9, 16, 25]>>> map(lambda x: x**2, items)[1, 4, 9, 16, 25]>>> [ x**2 for x in items ]   #這個我最喜歡了,一般情況下速度足夠快,而且可讀性強[1, 4, 9, 16, 25]

要點:

對iterable中的每個元素,依次應用function的方法(本質上就是一個for循環)

將所有結果返回一個list

如果參數很多,則對那些參數并行執行function

繼續下面兩個例子:

>>> lst1 = [1,2,3,4,5]>>> lst2 = [6,7,8,9,0]>>> map(lambda x,y: x+y, lst1,lst2)   #將兩個列表中的對應項加起來,并返回一個結果列表[7, 9, 11, 13, 5]
>>> lst1 = [1,2,3,4,5]>>> lst2 = [6,7,8,9,0]>>> lst3 = [7,8,9,2,1]>>> map(lambda x,y,z: x+y+z, lst1,lst2,lst3)[14, 17, 20, 15, 6]

可以看到map函數的強大和簡潔。如果使用for循環將會很繁瑣

reduce

直接看例子:

>>> reduce(lambda x,y: x+y,[1,2,3,4,5])15

reduce函數的計算方式是將列表中的元素累加,((((1+2)+3)+4)+5)=15 與map函數相比較就可以看出兩者之間的區別。map是上下運算,reduce是橫著逐個元素進行運算。

reduce含可以接受第三個值作為初始值:例如

>>> reduce(lambda x,y: x+y,[1,2,3,4,5],100)115            
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 依安县| 花莲市| 襄汾县| 墨竹工卡县| 灵宝市| 宣汉县| 茶陵县| 阿城市| 玛多县| 扶余县| 永州市| 宁远县| 桐城市| 获嘉县| 永福县| 四川省| 泾阳县| 隆昌县| 潢川县| 枣庄市| 图木舒克市| 马山县| 翁牛特旗| 尉犁县| 封丘县| 黎平县| 鸡西市| 钟祥市| 景泰县| 武穴市| 张北县| 横峰县| 麻江县| 临猗县| 台中市| 灵武市| 东乡县| 刚察县| 昌平区| 汝南县| 兴文县|