Python中函式式使用

2022-07-19 01:39:08 字數 1273 閱讀 1528

對於鍊錶來講,有三個內建函式非常有用: filter(),map() 以及 reduce()。

filter(function, sequence)

返回乙個 sequence(序列),包括了給定序列中所有呼叫function(item)後返回值為 true 的元素(如果可能的話,會返回相同的型別)。如果該 序列 (sequence)是乙個 str,unicode 或者 tuple,返回值必定是同一型別,否則,它總是 list。例如,以下程式可以計算乙個被 3 和 5 整除的序列:

deff(x):

return x % 3 == 0 and x % 5 ==0

print filter(f,range(2,100))

[15, 30, 45, 60, 75, 90]

map(function, sequence)

為每乙個元素依次呼叫function(item)並將返回值組成乙個鍊錶返回。例如,以下程式輸出列表中的元素3次:

defword(x):

return x*3words = ['1','2','3','4','5','6']

print map(word,words)

['111', '222', '333', '444', '555', '666']

可以傳入多個序列,函式也必須要有對應數量的引數,執行時會依次用各序列上對應的元素來呼叫函式(如果某些序列比其它的短,就用none來代替)。如果把none做為乙個函式傳入,則直接返回引數做為替代。例如:

seq1 = range(8)

seq2 = range(9,17)

defadd(x,y):

return x+y

print

map(add,seq1,seq2)

[9, 11, 13, 15, 17, 19, 21, 23]

reduce(function, sequence)

返回乙個單值,它是這樣構造的:首先以序列的前兩個元素呼叫函式function,再以返回值和第三個引數呼叫,依次執行下去。例如,以下程式計算 1 到 10 的整數之和:

def

add(x,y):

return x+y

print reduce(add,range(1,11))

55

python中函式和函式式程式設計

def funx x,y,z print x,y,z funx 1,hello true 位置引數 funx z he y is x boy 關鍵字引數執行結果 f untitled2 venv scripts python.exe f untitled2 chinese demo1.py 1 he...

python中的函式式程式設計

python內建了map 和reduce 函式 map map 函式接收兩個引數,乙個是函式,乙個是iterable,map將傳入的函式依次作用到序列的每個元素,並把結果作為新的iterator返回 def f x return x x r map f,1,2,3,4,5 print list r ...

python 函式式 panda 函式式

摘要 一提到程式設計正規化,很容易聯想到宗教的虔誠,每種宗教所表達信條都有一定合理性,但如果一直只遵循一種教條,可能也被讓自己痛苦不堪,程式設計正規化也是如此。案例1 案例一,摘抄來自一企業培訓材料,主要 邏輯是列印每課成績,並找出學生非f級別課程統計平均分數 class coursegrade 摘...