函數(shù)遞歸:
在函數(shù)內部态兴,可以調用其他函數(shù),如果一個函數(shù)在內部調用自己疟位,這個函數(shù)就是遞歸函數(shù)瞻润,簡單來講,在內部自己調用自己,可以想到會死循環(huán)绍撞,那么就會報錯正勒,所以一定要有一個明確的終止條件 return
匿名函數(shù):lambda
lambda函數(shù): 不用加return 自動會return,匿名函數(shù)真正意義上是沒有函數(shù)名字的傻铣,實際上它只是和其他
函數(shù)并存使用章贞,不做單獨使用。它不適合做復雜的處理邏輯非洲,像 if 判斷等鸭限,只適合作為一行來表示處理邏輯。
下面只是作為演示理解两踏,演示單獨使用
舉例:lambda x : x+1
lambda表示匿名函數(shù)關鍵字; x 表示形參; x+1 表示處理邏輯(表達式)
那么如果調用呢败京?
要給lambda 附加一個名字,不然只能打印出lambda的內存地址
例如:v1=lambda x : x+1
v1(10) 或者print(v1(10)) 打印結果為:11
map函數(shù): 處理序列中的每個元素梦染,得到的結果是個列表喧枷,位置與原來一樣;
例如:求一個列表中元素的平方:
a=[2,3,4,5,6,7]
print(list(map(lambda x:x**2, a)))
filter 函數(shù)
filter函數(shù):遍歷序列中的每個元素弓坞,判斷每個元素得到布爾值隧甚,如果是Ture留下來
例如:a = ['sb_zhangsan', 'sb_lisi', 'wangwu_sb', 'liliu_sb']
print(list(filter(lambda n n,endswith('sb', a))))
reduce 函數(shù)
這個函數(shù)需要先從模塊導入:from functools import reduce
功能是合并,把列表內容相加,
例如:
l = [1,2,3,4]
v1=reduce(lambda x,y:x+y,l)
print(v1) 打印結果為10
也可以定義任意一個初始值渡冻,例如:定義一個6
l = [1,2,3,4]
v1=reduce(lambda x,y:x+y,l戚扳,6)
print(v1)
打印結果為:16