首頁技術文章正文

python reduce函數怎么用?[python培訓]

更新時間:2019-10-31 來源:黑馬程序員 瀏覽量:

reduce函數會對參數迭代器中的元素進行累積。

reduce函數的定義如下:

functools.reduce(function, iterable[, initializer])


在上述定義中,function是一個帶有兩個參數的函數;第2個參數iterable是一個迭代器對象;initializer表示固定的初始值。reduce函數會依次從迭代器對象中取出每個元素,和上一次調用function的結果做為參數再次調用function函數。在Python3中,reduce函數被放置在functors模塊中,使用時需要先引入,示例代碼如下:


from functools import reduce

func = lambda x, y: x +y

result = reduce(func, [1, 2, 3, 4, 5])

print (result)

 

在上述示例中,首先引入了fucntools模塊,然后定義了一個計算兩個數的和的匿名函數。

由于在調用 reduce函數時傳入了func和序列,所以程序會把序列的每個元素取出來,和上次調用后的結果作為參數再次調用func函數,最后將結果返回給 result?!就扑]了解:黑馬程序員python培訓課程

程序的運行結果如下所示:

15

 

1572580061404_Java無鎖并發(fā).jpg


如果在調用reduce函數時傳入了initializer參數,那么function函數會以迭代器中的第一個元素與initializer的和作為參數進行調用。示例代碼如下:

from functools import reduce

result = reduce (lambda x, y: x + y, [1, 2, 3, 4], 5)

print(result)

# 結果為

15


此外,iterable參數還可以傳入字符串類型,示例代碼如下:

from functools import reduce

result = reduce(lambda x, y: x + y, ['aa', 'bb', 'cc'], 'dd')

print(result)

# 結果為

'ddaabbcc'


猜你喜歡:

map函數的用法

Python filter函數命令用法


分享到:
在線咨詢 我要報名
和我們在線交談!