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