python3中reduce函数的使用
生活随笔
收集整理的這篇文章主要介紹了
python3中reduce函数的使用
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
在python3中如果使用reduce需要先導入
from functools import reducereduce函數,reduce函數會對參數序列中元素進行累積。
reduce函數的定義:
reduce(function, sequence [, initial] ) -> valuefunction參數是一個有兩個參數的函數,reduce依次從sequence中取一個元素,和上一次調用function的結果做參數再次調用function。
第一次調用function時,如果提供initial參數,會以sequence中的第一個元素和initial作為參數調用function,否則會以序列sequence中的前兩個元素做參數調用function。
舉例說明上面這段話的意思.比如有列表lst=[1,2,3,4],我們希望得到列表每個元素之和,代碼如下:
from functools import reduce lst=[1,2,3,4] print(reduce(lambda x,y: x+y, lst))那如果我們希望是序列的乘積呢,接下來我們在看下代碼,下面代碼的意思就是列表每個元素相乘的結果
''' 遇到問題沒人解答?小編創建了一個Python學習交流QQ群:857662006 尋找有志同道合的小伙伴,互幫互助,群里還有不錯的視頻學習教程和PDF電子書! ''' from functools import reduce lst=[1,2,3,4] print(reduce(lambda x,y: x*y, lst))# 結果24下面來個稍微復雜點的,注意看lambda函數的變化,
from functools import reduce lst=[1,2,3,4] print(reduce(lambda x,y: x*y+1, lst)) ''' 遇到問題沒人解答?小編創建了一個Python學習交流QQ群:857662006 尋找有志同道合的小伙伴,互幫互助,群里還有不錯的視頻學習教程和PDF電子書! ''' #計算過程如下: # 這個式子只有兩個參數,沒有初始化值,那么就取列表前2項,通過lambda函數計算結果 #1*2+1=3, #上面計算的結果在與列表第三個元素通過lambda函數計算 # 3*3+1=10 #上面計算的結果在與列表第四個元素通過lambda函數計算 # 10*4+1=41接下來都是以此類推,可以自己增加幾個元素演示,或者換下lamda函數計算,驗證結果.
再說說有初始化值的情況, 這個時候就不是取列表的前兩項, 而是取初始值為第一個,序列的第一個元素為第二個元素,開始進行lambda函數的應用計算.
說的有點混亂,看代碼吧!
from functools import reduce lst=[1,2,3,4] print(reduce(lambda x,y: x+y, lst,5))# 5是初始值,也可以理解為第三個參數 # 計算呢過程 -->5+1=6 -->6+2=8 -->8+3=11 -->11+4=15總結
以上是生活随笔為你收集整理的python3中reduce函数的使用的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 从Python代码到APP,你只需要一个
- 下一篇: Python中的负索引是什么?