python中的函式式程式設計

2021-09-25 21:17:13 字數 1526 閱讀 1946

python內建了map()和reduce()函式

map():

map()函式接收兩個引數,乙個是函式,乙個是iterablemap將傳入的函式依次作用到序列的每個元素,並把結果作為新的iterator返回

def f(x):

return x*x

r=map(f,[1,2,3,4,5])

print(list(r)) #[1, 4, 9, 16, 25]

print(list(map(str,[1,2,3,4,5,6,7,8,9]))) #['1', '2', '3', '4', '5', '6', '7', '8', '9']

reduce():

reduce把乙個函式作用在乙個序列[x1, x2, x3, ...]上,這個函式必須接收兩個引數,reduce把結果繼續和序列的下乙個元素做累積計算

from functools import reduce

def add(x,y):

return x+y

print(reduce(add,[1,2,3,4,5,6])) #21=1+2=3=4+5+6

filter():

filter()把傳入的函式依次作用於每個元素,然後根據返回值是true還是false決定保留還是丟棄該元素

def is_odd(n):

return n%2==1

print(list(filter(is_odd,[1,2,3,4,5,6,9,10,15]))) #[1, 3, 5, 9, 15]

def not_empty(s):

return s and s.strip() #python strip() 方法用於移除字串頭尾指定的字元(預設為空格或換行符)或字串行

print(list(filter(not_empty,['a','','b',none,'c','']))) #['a', 'b', 'c']

sorted()

python內建的sorted()函式就可以對list進行排序:

print(sorted([36,5,-12,9,-21],key=abs))   #[5, 9, -12, -21, 36]按絕對值大小排
print(sorted(['bob', 'about', 'zoo', 'credit']))   #['credit', 'zoo', 'about', 'bob']

#預設情況下,對字串排序,是按照ascii的大小比較的,由於'z' < 'a',結果,大寫字母z會排在小寫字母a的前面

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中的函式式程式設計 一

函式 function 函式式 functional,一種程式設計正規化 函式式程式設計的特點 把計算視為函式而非指令 純函式式程式設計 不需要變數,沒有 測試簡單 支援高階函式,簡潔 python支援的函式式程式設計特點 不是純函式式程式設計,因為python允許有變數 支援高階函式 函式也可以作...

函式式程式語言python 函式式程式設計

函式是python內建支援的一種封裝,我們通過把大段 拆成函式,通過一層一層的函式呼叫,就可以把複雜任務分解成簡單的任務,這種分解可以稱之為面向過程的程式設計。函式就是面向過程的程式設計的基本單元。而函式式程式設計 請注意多了乙個 式 字 functional programming,雖然也可以歸結...