# -*- coding: utf-8 -*- #python 27 #xiaodeng #函數式編程工具:filter和reduce#python內置函數中,map函數是用來進行函數式編程這類工具最簡單的內置函數代數#函數式編程含義: #一種編程范式,也就是如何編寫程序的方法論,是一種編程思想。 #無法給予準確的定義 #函數式編程的編程風格強調表達式計算,而不是執行命令。#常見函數式編程 #filter:基于某一測試函數過濾出一些元素 #reduce:對每對元素都應用函數并運行到最后結果,兩者都返回可迭代對象#頁碼:523 #filter, 過濾 print list(filter((lambda x:x>0),range(-5,5)))#[1, 2, 3, 4]#以上等價于: res=[] for x in range(-5,5):if x>0:res.append(x) #為什么在print res時沒有縮進呢?因為res他的定義是頂格的,如果print不是頂格,那么兩者之間必然存在輸出結果的差異print res#[1, 2, 3, 4]#reduce函數 #一對元素兩兩運行得到其結果 print reduce((lambda x,y:x+y),[1,2,3,4])#10 print reduce((lambda x,y:x*y),[1,2,3,4])#24#編寫函數通用設計原則: 1)函數盡可能小,盡可能自包含、有單一、統一的用途 2)出入參數和返回值等其他部分相互通信--通信的功能
?