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)) #[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,雖然也可以歸結...