教育行業(yè)A股IPO第一股(股票代碼 003032)

全國咨詢/投訴熱線:400-618-4000

python的reduce函數(shù)用法介紹[python培訓(xùn)]

更新時間:2019年10月31日16時02分 來源:傳智播客 瀏覽次數(shù):

reduce函數(shù)會對參數(shù)迭代器中的元素進(jìn)行累積。

reduce函數(shù)的定義如下:

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


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


from functools import reduce
func = lambda x, y: x + y
result = reduce(func, [1, 2, 3, 4, 5])
print(result)

 
在上述示例中,首先引入了fucntools模塊,然后定義了一個計算兩個數(shù)的和的匿名函數(shù)。
由于在調(diào)用 reduce函數(shù)時傳入了func和序列,所以程序會把序列的每個元素取出來,和上次調(diào)用后的結(jié)果作為參數(shù)再次調(diào)用func函數(shù),最后將結(jié)果返回給 result?!就扑]了解:傳智播客 python+人工智能課程
程序的運行結(jié)果如下所示:


15

如果在調(diào)用reduce函數(shù)時傳入了initializer參數(shù),那么function函數(shù)會以迭代器中的第一個元素與initializer的和作為參數(shù)進(jìn)行調(diào)用。示例代碼如下:【插播福利:2019傳智播客python視頻教程全集下載
 


from functools import reduce
result = reduce (lambda x, y: x + y, [1, 2, 3, 4], 5)
print(result)
# 結(jié)果為
15

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


from functools import reduce
result = reduce(lambda x, y: x + y, ['aa', 'bb', 'cc'], 'dd')
print(result)
# 結(jié)果為
'aabbccdd'


本文來自:傳智播客 python+人工智能學(xué)院  python.itcast.cn


猜你喜歡:python filter函數(shù)用法
0 分享到:
和我們在線交談!