python3函数中lambda/filter/map/reduce的用法
生活随笔
收集整理的這篇文章主要介紹了
python3函数中lambda/filter/map/reduce的用法
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
lambda/filter/map/reduce這幾個函數面試中很肯定會用到,本篇主要介紹這幾個函數的用法。
1.lambda
匿名函數,用法如下:
# lambada 參數,參數,參數 : 返回的表達式示例1:
f = lambda x, y: x * y print(f(2, 3)) # 6示例2:
r = (lambda x, y: x+y)(1, 2) print(r) # 32 filter
filter(function, sequence):對sequence中的item依次執行function(item),將執行結果為 True 的item組成一個filter對象(可迭代)(取決于sequence的類型)返回。
示例:
''' 遇到問題沒人解答?小編創建了一個Python學習交流QQ群:531509025 尋找有志同道合的小伙伴,互幫互助,群里還有不錯的視頻學習教程和PDF電子書! ''' def gt_5(x):return x > 5r = filter(gt_5, range(10)) print(list(r)) # [6, 7, 8, 9]3 map
map(function, sequence) :對sequence中的item依次執行function(item),見執行結果組成一個map對象(可迭代)返回。
示例:
def mysum(x, y):return x + yr = map(mysum, range(5), range(5, 10)) print(list(r)) # [5, 7, 9, 11, 13]4 reduce
python3中,reduce已經從全局名稱空間里移除,需要從functiontools中導入。
reduce(function, sequence, starting_value):對sequence中的item順序迭代調用function,如果有starting_value,還可以作為初始值。
示例:
''' 遇到問題沒人解答?小編創建了一個Python學習交流QQ群:531509025 尋找有志同道合的小伙伴,互幫互助,群里還有不錯的視頻學習教程和PDF電子書! ''' def mysum(x, y):return x + yfrom functools import reduce r = reduce(mysum, range(10)) print(r) # 455 聯合使用
示例:計算1!+2!+…+10!
def factorial(n):if n == 1:return 1return n*factorial(n-1) r = reduce(lambda x, y: x + y, map(factorial, range(1, 11))) print(r) # 4037913這就是幾個函數的用法了,是不是很簡單呢?
總結
以上是生活随笔為你收集整理的python3函数中lambda/filter/map/reduce的用法的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python获取系统信息模块psutil
- 下一篇: python获取数组中最多的元素