日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

偏函数 匿名函数 高阶函数 map filter reduce

發布時間:2023/12/10 编程问答 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 偏函数 匿名函数 高阶函数 map filter reduce 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
# 偏函數 創建一個新的函數,指定我們要使用的函數的某個參數為固定的值,這個新函數就是偏函數 def test(a, b, c, d=1):print(a + b + c + d)from functools import partial # 使用偏函數必須導入此模塊 newFunc = partial(test, c=5) # newFunc為偏函數,它設定了test函數中c的值固定為5 newFunc(1, 2) # 9 相當于 test(1,2,5,1) newFunc2 = partial(test, 5, 6) # newFunc2為偏函數,它設定了test函數中第一個參數的值固定為5 newFunc2(10, 2) # 23 相當于 test(5,6,10,2) # 匿名函數 使用lambda關鍵字,通常與其它函數配合使用 # 返回單個值 print((lambda x, y, z: x + y + z)(1, 2, 3)) # 返回多個值 print((lambda x, y, z: (x + y + z, x + 1, y + 1, z + 1))(1, 2, 3))# 高階函數(以下兩個特性滿足一個即為高階函數) # 1函數的傳入參數是一個函數名 # 2函數的返回值是一個函數名# 例對列表進行加一或減一或平方,并返回結果 def add_one(x):return x + 1 # 相當于 lambda x:x+1def reduce_one(x):return x - 1 # 相當于 lambda x:x+1def square(x):return x ** 2 # 相當于 lambda x:x**2 list1 = [1, 2, 3, 4, 5] list2 = [11, 21, 32, 43, 54]def calc(func, list):res = []for i in list:r = func(i) # 這里調用了傳入的函數 res.append(r)return resprint(calc(reduce_one, list1)) print(calc(lambda x: x - 1, list2))# map函數:對可迭代對象的每個元素依次處理,返回依次處理后的結果 # 以上的calc函數的功能就是python中內置map函數的功能 # map函數的第一個參數可以是匿名函數,也可是自定義函數 # map函數的第二個參數是一個可迭代對象 result = list(map(lambda x: x - 1, list2)) # 將map執行返回的結果轉為列表 print(result)# 例 取出電影院里名字結尾有sb的觀眾 movie_people = ['alex_sb', 'wu_sb', 'zhang_sb', '張三']def filter_test(func, array):ret = []for p in array:if func(p):ret.append(p)return retprint(filter_test(lambda n: n.endswith('sb'), movie_people))# filter函數:對可迭代對象的每個元素篩選處理,返回篩選后的結果 # 以上的filter_test函數就是python中內置filter函數的功能 # filter函數的第一個參數可以是匿名函數,也可是自定義函數 # filter函數的第二個參數是一個可迭代對象 result = list(filter(lambda n: n.endswith('sb'), movie_people)) # 將map執行返回的結果轉為列表 print(result)# 通過以上兩個例子,在python中還有類似的一個函數reduce # reduce函數:對可迭代對象的每個元素合并處理,返回一個值 # 使用reduce,必須from functools import reduce # reduce函數的第一個參數可以是匿名函數,也可是自定義函數 # reduce函數的第二個參數是一個可迭代對象 # reduce函數的第三個參數是初始值,也可以不寫 # 例 將列表中的所有數字相乘得到結果 from functools import reduce num_list = [1, 2, 4, 11] print(reduce(lambda x, y: x * y, num_list, 1))# 例 計算1-100的和 print(reduce(lambda x, y: x + y, range(1,101)))

?

轉載于:https://www.cnblogs.com/dangrui0725/p/9416630.html

總結

以上是生活随笔為你收集整理的偏函数 匿名函数 高阶函数 map filter reduce的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。