函數式程式設計是使用一系列函數去解決問題,按照一般程式設計思維,面對問題時我們的思考方式是“怎麼幹”,而函數函數式程式設計的思考方式是我要“幹嘛”。 至於函數式程式設計的特性暫不總結,我們直接拿例子來體會什麼是函數式程式設計。
lambda表達式(匿名函數):
普通函數與匿名函數的定義方式:
普通函數def add( a,b):
return a + bprint add(2,3) #匿名函数add = lambda a,b : a + bprint add(2,3)#========输出===========5 5
匿名函數的命名規則,用lamdba 關鍵字標識,冒號(:)左側表示函數接收的參數(a, b) ,冒號(:)右邊表示函數的回傳值(a+b)。
因為lamdba在創建時不需要命名,所以,叫匿名函數^_^
Map函數:
##計算字串長度
#
abc = ['com','fnng','cnblogs']for i in range(len(abc)): print len(abc[i])#========输出===========347
abc_len = map(len,['hao','fnng','cnblogs'])print abc_len#========输出===========[3, 4, 7]
print ss.upper() #轉換成大寫print ss.lower() #轉換成小寫# ========輸出===========HELLO WORLD!
hello world!
def to_lower(item): return item.lower()name = map(to_lower,['cOm','FNng','cnBLoGs'])print name#========输出===========['com', 'fnng', 'cnblogs']
#
abc = ['cOm','FNng','cnBLoGs']lowname = []for i in range(len(abc)): lowname.append(abc[i].lower())print lowname#========输出===========['hao', 'fnng', 'cnblogs']
def add(a,b): return a+b add = reduce(add,[2,3,4])print add#========输出===========9 对于Reduce函数每次是需要对两个数据进行处理的,首选取2 和3 ,通过add函数相加之后得到5,接着拿5和4 ,再由add函数处理,最终得到9 。
if number[i]>0: count += 1 sum += number[i]print sum,countif count>0: average = sum/countprint average
number =[2, -5, 9, -7, 2, 5, 4, -1, 0, -3, 8] sum = filter(lambda x: x>0, number) average = reduce(lambda x,y: x+y, sum)/len(sum)print average
2)資料集,操作,回傳值都放到了一起。
3)你在讀程式碼的時候,沒有了循環體,於是就可以少了些臨時變量,以及變數倒來倒去邏輯。
4)你的程式碼變成了在描述你要幹嘛,而不是怎麼去乾。
以上是python-函數式程式設計實例教程的詳細內容。更多資訊請關注PHP中文網其他相關文章!