32.lambda與map、filter、reduce

1.lambda

lambda 是匿名函數,比普通函數更方便,適合配合其他內置函數使用,調用方式與函數無異

定義:lambda 參數:函數體代碼    

eg:
求兩個數的和
(lambda x,y:x+y)(1,2)     #結果爲3

2.map

map(func,iterable)   #映射,對一個可迭代對象的元素進行操作,map會將iterable的每一個元素傳入func,結果是一個生成器,可以使用list()將其所有值序列化

eg:
lst = [1,2,3,4,5]
#將lst的所有元素變爲原來的2
list(map(lambda x:x * 2,lst))       結果爲:[2,4,6,8,10]

3.filter

filter(func,iterable)   #過濾,對一個可迭代對象的元素進行過濾,map會將iterable的每一個元素傳入func,如果func的結果爲True則留下否則刪除,結果是一個生成器,可以使用list()將其所有值序列化

eg:
lst = [2,3,4,5,6,7,8]
#將lst中偶數留下
list(filter(lambda x:x % 2 == 0,lst))    結果爲:[2,4,6,8]

4.reduce

reduce(func,iterable,init)   #過濾,對一個可迭代對象的元素進行操作,reduce會將上次操作的值當做下次操作的初始值
#reduce在python3中不是內置函數了,需要從functools中導入,結果爲變量值

eg:
from functools import reduce
lst = [1,2,3,4,5,6,7,8,9,10]
#計算lst中元素之和
list(filter(lambda x,y:x + y,lst))     結果爲:55
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章