首頁 >後端開發 >Python教學 >python中map函數和reduce函數的使用方法介紹(附程式碼)

python中map函數和reduce函數的使用方法介紹(附程式碼)

不言
不言轉載
2018-09-28 15:02:403606瀏覽

這篇文章帶給大家的內容是關於python中map函數和reduce函數的使用方法介紹(附程式碼),有一定的參考價值,有需要的朋友可以參考一下,希望對你有幫助。

map()函數

Python中的map()函數接收兩個參數,一個是呼叫函數物件(python中處處皆對象,函數未實例前也可以當物件一樣調用),另一個是呼叫函數所需的參數,回傳值是迭代計算出的結果所組成的列表。

 def func(x):
     return x*x
 r=map(func,[1,2,3,4,5,6,7,8,9])
 l=list(r)
 print(l)

顯示結果:

 [1, 4, 9, 16, 25, 36, 49, 64, 81]

reduce() 函數

reduce函數同樣需要兩個參數,一個是調用函數對象,另一個數調用函數所需的參數,其返回值是將計算結果繼續和下一個元素做累積。

from functools import reduce
def add(x,y):
    print('x is:',x,'y is:',y)
    return x+y
ret=reduce(add,[1,3,5,7,9])
print(ret)

顯示結果:

#
x is: 1 y is: 3
x is: 4 y is: 5
x is: 9 y is: 7
x is: 16 y is: 9
25

或許可能會問,python的內建函數sum()就可以得到想要的結果,為什麼要有reduce呢。看如下案例,我們想要將[1,3,5,7,9]回傳成13579

#
from functools import reduce
def add(x,y):
    print('x is:',x,'y is:',y)
    return x*10+y
ret=reduce(add,[1,3,5,7,9])
print(ret)

##顯示結果:

 x is: 1 y is: 3
 x is: 13 y is: 5
 x is: 135 y is: 7
 x is: 1357 y is: 9
 13579

以上是python中map函數和reduce函數的使用方法介紹(附程式碼)的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文轉載於:cnblogs.com。如有侵權,請聯絡admin@php.cn刪除