Python認識lambda函數、map函數、filter() 函數。

lambda函數,也就是大家說的匿名函數。它沒有具體的名稱,也可以叫做一句話函數,我覺得也不過分,大家看下代碼,來體會下一句話函數(lambda)。

它的格式:

關鍵字lambda 後面是參數,可以是一個或多個。緊接冒號,然後後面是表達式。

1 c = 5
2 a = lambda c,a = 12:a+c   #格式:關鍵字lambda 後面是參數,可以是一個或多個。緊接冒號,然後後面是表達式。
3 print(a(c))               #調用lamabda匿名函數,然後傳入變量 c

在這裏插入圖片描述

怎麼樣,整個lambda匿名函數,從定義函數,到參數再到表達式,是在一行代碼就可以做完的事兒,所以是不是有些時候比def定義函數要方便的多。

如果你對python感興趣,我這有個學習Python基地,裏面有很多學習資料,感興趣的+Q羣:688244617

1 c = 5
2 def a(c,a=12):
3     a += c
4     print(a)
5 a(c)

自己可以對比def和lambda兩種形式,有時候簡單的表達式,完全可以使用匿名函數lambda函數,在功能比較複雜的時候可以繼續使用def定義函數哦~~

接下來我們再看下map函數的使用,man函數有兩個參數,第一個參數是:函數,第二個 參數是:可迭代的數據對象。map可以使,可迭代的數據對象中的元素,每個元素,同時做相同的事情,我們看下代碼:

1 a = [1,2,3,4]
2 def add(a):
3     return a + 100    #讓列表中的每個元素加100,然後返回新的列表
4 
5 print(list(map(add,a)))  #注意:map函數,在Python 3.幾的版本 返回迭代器,所以需要在前面加list()函數進行轉換

在這裏插入圖片描述

重點說明:

1、map()中的參數,函數可以是自定義函數,也可以是內置函數。

2、第二個函數需要是可迭代的數據,比如列表,元組,字典。

3、map()這個函數的作用是,將其它函數作爲參數,讓可迭代的參數,數據中的每個元素,在其它函數內執行一遍。

4、map函數,在Python 3.幾的版本 返回迭代器,所以需要在前面加list()函數進行轉換,如果你是其他類型,就進行相應的轉換。

1 print(list(map(lambda a:a+100,a)))

在這裏插入圖片描述

上面的小案例,我們也可以用map函數和lambda函數一起寫。是不是更容易理解了呢?

最後再認識一個:filter() 函數,它可以用於過濾序列,過濾掉不符合條件的元素,把符號條件的元素組合新的列表返回給你。filter()函數也有兩個參數,第一個參數:是函數,第二個參數:是序列;將序列中的每個元素作爲參數傳入給函數進行過濾判斷。將返回True的元素值放到新的列表中。

1 #過濾出列表中大於3的元素
2 a = [1,2,3,4,5]
3 
4 def add(a):
5     return a>3    #將每個元素進行過濾判斷
6 print(list(filter(add,a)))    #將序列中的每個元素作爲參數傳入給函數進行過濾判斷。將返回True的元素值放到新的列表中。

在這裏插入圖片描述

同樣我們也可以結合lambda()函數:

filter()函數返回的也是迭代器,所以需要在前面加list()函數進行轉換,如果你是其他類型,就進行相應的轉換。

1 a = [1, 2, 3, 4, 5]
2 print(list(filter(lambda b:b>3,a)))

在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章