函數式編程(Functional Programming)或者函數程序設計,又稱泛函編程,是一種編程範型,它將計算機運算視爲數學上得函數計算,並且避免使用程序狀態以及易變的對象。
在Python中,函數式編程主要由幾個函數的使用構成:lambda(),map(),reduce(),filter()。
map()函數
用於逐一遍歷
a=[1,2,3]
b=map(lambda x:x+2,a)
b=list(b)
'''
在3.x需要b=list(b)這一步,在2.x不需要這步,原因是在3.x中,map函數僅僅是創建一個待運行的命令容器,只有其他函數調用它的時候才返回結果
'''
map(lambda x,y:x*y,a,b)
reduce函數
用於遞歸計算
reduce(lambda x,y:x*y,range(1,n+1))
'''
在2.x中,上述命令可以直接運行,在3.x中,reduce函數已經被移除了全局命名空間,它被置於fuctools庫中,如需使用,則通過form fuctools import reduce 引入reduce
'''
s=1
for i in range(1,n+1):
s=s*i
filter()函數
用來篩選出列表中符合條件的元素
b=filter(lambda x:x>5 and x<8,range(10))
b=list(b)
b=[i for i in range(10) if i>5 and i<10]