1 #Python提供的sum()函數可以接受一個list并求和,請編寫一個prod()函數,可以接受一個list并利用reduce()求積:
代碼:
<code> </code><code>2</code>
<code> </code><code>3</code> <code>from</code> <code>functools </code><code>import</code> <code>reduce</code>
<code> </code><code>4</code> <code>li </code><code>=</code> <code>[</code><code>1</code><code>,</code><code>2</code><code>,</code><code>3</code><code>,</code><code>4</code><code>,</code><code>5</code><code>,</code><code>7</code><code>]</code>
<code> </code><code>5</code> <code>print</code><code>(</code><code>sum</code><code>(li))</code>
<code> </code><code>6</code>
<code> </code><code>7</code> <code>def</code> <code>prod(x,y): </code>
<code> </code><code>8</code> <code>return</code> <code>x </code><code>*</code> <code>y</code>
<code> </code><code>9</code>
<code> </code><code>10</code> <code>r </code><code>=</code> <code>reduce</code><code>(prod,li)</code>
<code> </code><code>11</code> <code>print</code><code>(r)</code>
運作結果:
<code>[root@HK Practice]</code><code># python map_reduce_2.py </code>
<code>22</code>
<code>840</code>
<code>[root@HK Practice]</code><code>#</code>
代碼解釋:
<code> </code><code>3</code> <code>from</code> <code>functools </code><code>import</code> <code>reduce</code> <code>#導入reduce子產品</code>
<code> </code><code>4</code> <code>li </code><code>=</code> <code>[</code><code>1</code><code>,</code><code>2</code><code>,</code><code>3</code><code>,</code><code>4</code><code>,</code><code>5</code><code>,</code><code>7</code><code>] </code><code>#建立一個清單用于計算</code>
<code> </code><code>5</code> <code>print</code><code>(</code><code>sum</code><code>(li)) </code><code>#列印求和結果</code>
<code> </code><code>7</code> <code>def</code> <code>prod(x,y): </code><code>#定義函數prod,傳入兩個參數x,y</code>
<code> </code><code>8</code> <code>return</code> <code>x </code><code>*</code> <code>y </code><code>#傳回x和y的乘積</code>
<code> </code><code>10</code> <code>r </code><code>=</code> <code>reduce</code><code>(prod,li) </code><code>#reduce 傳入函數prod和清單li</code>
<code> </code><code>11</code> <code>print</code><code>(r) </code><code>#列印結果</code>
<code></code>
本文轉自snc_snc 51CTO部落格,原文連結:http://blog.51cto.com/netsyscode/1751356,如需轉載請自行聯系原作者