python3中內建函數map()與reduce()的使用方法


map()的使用

   map()的使用方法形如map(f(x),Itera).對,它有兩個參數,第一個參數為某個函數,第二個為可迭代對象。如果不懂什么是函數,不懂什么是可迭代對象沒關系,記住下面的例子就可以了:

  

1 >>> def g(x):
2     return 3 * x
3 
4 >>> l=map(g,[1,3,4,5,7,10])
5 >>> list(l)
6 [3, 9, 12, 15, 21, 30]

       定義的g(x)就是作為map()第一個參數,它的作用是取參數X的三倍。

       [1,3,4,5,7,10]列表作為g(x)的第二個參數,它是一個列表。沒錯,列表是一個可迭代對象,當然可迭代對象不僅僅有列表,其他的可以慢慢學習。調用map函數后,g(x)將會作用到列表的每個元素,我們來看看作用后的效果:

>>> list(l) 
[3, 9, 12, 15, 21, 30]

是的,l的每個元素為原來的三倍。
函數應該懂了吧。
可迭代對象應該懂了吧。
重點是,map()函數會用了吧。
恭喜!

reduce()的使用
  reduce()的使用方法形如reduce(f(x),Itera).對,它的形式和map()函數一樣。不過參數f(x)必須有兩個參數。reduce()函數作用是:把結果繼續和序列的下一個元素做累積計算。廢話不多說,請看實例:
>>> from functools import reduce
>>> def add(x,y): #定義一個相加函數
        return x+y

>>> reduce(add,[1,2,3,4,6])
16

add(x,y)是我們定義的一個函數,將add函數和[1,2,3,4,6]列表傳入reduce函數,就相當於1+2+3+4+6 =16。即把結果繼續和序列的下一個元素做累加。

我們再來舉一實例來說明:

>>> def fun(x,y):#定義一個函數
        return 10*x+y

>>> reduce(fun,[2,5,6])
256

定義的函數fun作用是將x,y轉化成一個整數xy。於是作用於reduce就會將列表[x1,x2,x3,x4,x5]轉化成整數x1x2x3x4x5。

這就是reduce()的作用。

 

以上就是內建函數map()和reduce()的簡單用法。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM