Python 入門之經典函式例項(三)

2021-10-09 22:30:00 字數 3384 閱讀 3040

@r星校長

3關:map-reduce - 對映與歸約的思想

python 中有兩個非常常見的內建函式:map()reduce()函式。這兩個函式都是應用於序列的處理函式,map()用於對映,reduce()用於歸併。本關目標就是讓學習者了解並掌握map()reduce()函式的相關知識。

map()函式

map()函式會根據傳入的函式對指定的序列做對映。map()函式接收兩個引數,乙個是function函式,另乙個引數是乙個或多個序列。map()函式會將傳入的函式依次作用到傳入序列的每個元素,並把結果作為新的序列返回。map()函式的定義為:

map

(function, sequence[

, sequence,..

.])-

>

list

r =

map(

lambda x: x **2,

[1,2

,3,4

,])print

(list

(r))

輸出結果:

[1,

4,9,

16]

map()函式的第二個引數中存在多個序列時,會依次將每個序列中相同位置的元素一起做引數並呼叫function函式。例如,要對map()函式傳入的兩個序列中的元素依次求和,程式**如下:

r =

map(

lambda x, y: x + y,[1

,2,3

,4,5

],[6

,7,8

,9,10

])print

(list

(r))

輸出結果:

[7,

9,11,

13,15]

map()函式傳入的序列有多個時,我們要注意function函式的引數數量,應和map()函式傳入的序列數量相匹配。

reduce()函式

reduce()函式把傳入的函式作用在乙個序列[x1, x2, x3, ...]上,且這個函式必須要接收兩個引數。reduce()函式把第一次計算的結果繼續和序列中的下乙個元素做累積計算。reduce()函式的定義為:

reduce

(function, sequence[

, initial])-

> value

function引數是有兩個引數的函式,reduce()函式依次在序列中取元素,並和上一次呼叫function函式的結果做引數,然後再次呼叫function函式。例如:

from functools import

reduce

r =reduce

(lambda x, y: x + y,[1

,2,3

,4,5

],6)

print

(r)

輸出結果:

21
在上述例子中,程式的計算順序為((((((1+6)+2)+3)+4)+5))

小結

map()reduce()函式的應用十分廣泛,在分布式計算領域有著十分重要的運用。我們期待著學習者在今後的開發道路上對map()reduce()函式有更加深刻的體驗。

測試輸入:

80預期輸出:80=

2*2*

2*2*

5測試輸入:

79預期輸出:79=

79測試輸入:

225預期輸出:

225=3*

3*5*

5測試輸入:

123456

預期輸出:

123456=2

*2*2

*2*2

*2*3

*643

# 輸入乙個正整數

n =int

(input()

)# 請在此新增**,將輸入的乙個正整數分解質因數

#********** begin *********#

defresult

(n):

result=

for i in

range(2

,n):

while n!=i:

if n%i==0:

#print(i)

n=n/i

else

:break

#print(n)

int(n)

)return result

#print(result (n))

print

(n,'='

,'*'

.join(

map(

str,result(n)))

)#先將result列表中的元素轉化為字串型別,然後將序列中的元素以指定的字元連線生成乙個新的字串。

python經典例項 python經典例項

本書是python經典例項解析,採用基於例項的方法編寫,每個例項都會解決具體的問題和難題。主要內容有 數字 字串和元組,語句與語法,函式定義,列表 集 字典,使用者輸入和輸出等內建資料結構,類和物件,函式式和反應式程式設計,web服務,等等。python是傑出的指令碼語言,可以為應用程式注入動力,提...

tensorflow 入門經典例項

import tensorflow as tf 發起會話 sess tf.session 兩行都可以執行 具體意思見下方注釋 a tf.variable tf.truncated normal 2,3 0,1,dtype tf.float32,seed 3 a tf.variable tf.rand...

python入門之函式

1.1 函式是一段功能 的封裝,可以被其他程式 重複呼叫。1.2 函式一般包括三要素 函式名 引數和返回值 建立函式要使用def關鍵字 例如 def say name print 名字叫做 format name return name 1 python中的單行注釋和多行注釋在在編譯後會被去掉,如果...