python函數(shù)式編程實(shí)例介紹

這篇文章主要講解了“python函數(shù)式編程實(shí)例介紹”,文中的講解內(nèi)容簡(jiǎn)單清晰,易于學(xué)習(xí)與理解,下面請(qǐng)大家跟著小編的思路慢慢深入,一起來研究和學(xué)習(xí)“python函數(shù)式編程實(shí)例介紹”吧!

成都創(chuàng)新互聯(lián)公司服務(wù)項(xiàng)目包括濱海新區(qū)網(wǎng)站建設(shè)、濱海新區(qū)網(wǎng)站制作、濱海新區(qū)網(wǎng)頁制作以及濱海新區(qū)網(wǎng)絡(luò)營(yíng)銷策劃等。多年來,我們專注于互聯(lián)網(wǎng)行業(yè),利用自身積累的技術(shù)優(yōu)勢(shì)、行業(yè)經(jīng)驗(yàn)、深度合作伙伴關(guān)系等,向廣大中小型企業(yè)、政府機(jī)構(gòu)等提供互聯(lián)網(wǎng)行業(yè)的解決方案,濱海新區(qū)網(wǎng)站推廣取得了明顯的社會(huì)效益與經(jīng)濟(jì)效益。目前,我們服務(wù)的客戶以成都為中心已經(jīng)輻射到濱海新區(qū)省份的部分城市,未來相信會(huì)繼續(xù)擴(kuò)大服務(wù)區(qū)域并繼續(xù)獲得客戶的支持與信任!

函數(shù)式編程:是指代碼中每一塊都是不可變的,都由純函數(shù)的形式組成。這里的純函數(shù),是指函數(shù)本身相互獨(dú)立、互不影響,對(duì)于相同的輸入,總會(huì)有相同的輸出。并且允許把函數(shù)本身作為參數(shù)傳入另一個(gè)函數(shù),還允許返回一個(gè)函數(shù)。

例如實(shí)現(xiàn)列表元素的二次方:

def multiply_2(list):

new_list=[]

for i in list:

new_list.append(item**2)

return new_list

# 函數(shù)式編程的優(yōu)點(diǎn),主要在于其純函數(shù)和不可變的特性使程序更加健壯,易于調(diào)試和測(cè)試;缺點(diǎn)主要在于限制多,難寫。

純粹的函數(shù)式編程語言(比如 Scala),其編寫的函數(shù)中是沒有變量的,因此可以保證,只要輸入是確定的,輸出就是確定的;而允許使用變量的程序設(shè)計(jì)語言,由于函數(shù)內(nèi)部的變量狀態(tài)不確定,同樣的輸入,可能得到不同的輸出。

Python 允許使用變量,所以它并不是一門純函數(shù)式編程語言。Python 僅對(duì)函數(shù)式編程提供了部分支持,主要包括 map()、filter() 和 reduce() 這 3 個(gè)函數(shù),它們通常都結(jié)合 lambda 匿名函數(shù)一起使用。

python map()函數(shù)

基本語法格式:

map(function,iterable)

# function 參數(shù)表示要傳入一個(gè)函數(shù),其可以是內(nèi)置函數(shù)、自定義函數(shù)或者 lambda 匿名函數(shù);iterable 表示一個(gè)或多個(gè)可迭代對(duì)象,可以是列表、字符串等

函數(shù)的功能:

對(duì)可迭代對(duì)象的每一個(gè)元素,都調(diào)用傳入的函數(shù),并返回一個(gè)map對(duì)象

注意的是該map對(duì)象不能直接打印出來,需要通過for循環(huán)遍歷或者將其通過list()轉(zhuǎn)化為list對(duì)象才能顯示出來

示例:

list_demo=[6,7,8]

new_list=map(lambda x:x**2,list_demo)

print(list(new_list))

map() 函數(shù)是直接由用 C 語言寫的,運(yùn)行時(shí)不需要通過 Python 解釋器間接調(diào)用,并且內(nèi)部做了諸多優(yōu)化,所以相比其他方法,此方法的運(yùn)行效率最高。

python filter()函數(shù)

基本語法格式:鄭州人流醫(yī)院哪家好 http://mobile.zhongyuan120.com/

filter(function,iterable)

#功能是對(duì) iterable 中的每個(gè)元素,都使用 function 函數(shù)判斷,并返回 True 或者 False,最后將返回 True 的元素組成一個(gè)新的可遍歷的集合。

示例:

list_demo=[6,7,8]

new_list=filter(lambda x:x%2==0,list_demo)

print(list(new_list))

python reduce()函數(shù)

基本語法格式:

reduce(function,iterable)

# 其中,function 規(guī)定必須是一個(gè)包含 2 個(gè)參數(shù)的函數(shù);iterable 表示可迭代對(duì)象。

reduce() 函數(shù)通常用來對(duì)一個(gè)集合做一些累積操作.

使用之前需要導(dǎo)入functools模塊

示例:

# 計(jì)算列表乘積

import functools

list_demo=[6,7,8]

result=functools.reduce(lambda x,y:x*y,list_demo)

print(result)

綜合來看:

當(dāng)對(duì)集合中的元素進(jìn)行一些操作時(shí),如果操作非常簡(jiǎn)單,比如相加、累積這種,那么應(yīng)該優(yōu)先考慮使用 map()、filter()、reduce() 實(shí)現(xiàn)。另外,在數(shù)據(jù)量非常多的情況下(比如機(jī)器學(xué)習(xí)的應(yīng)用),一般更傾向于函數(shù)式編程的表示,因?yàn)樾矢摺?/p>

感謝各位的閱讀,以上就是“python函數(shù)式編程實(shí)例介紹”的內(nèi)容了,經(jīng)過本文的學(xué)習(xí)后,相信大家對(duì)python函數(shù)式編程實(shí)例介紹這一問題有了更深刻的體會(huì),具體使用情況還需要大家實(shí)踐驗(yàn)證。這里是創(chuàng)新互聯(lián),小編將為大家推送更多相關(guān)知識(shí)點(diǎn)的文章,歡迎關(guān)注!

本文標(biāo)題:python函數(shù)式編程實(shí)例介紹
鏈接地址:http://bm7419.com/article46/ipdseg.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供品牌網(wǎng)站建設(shè)品牌網(wǎng)站制作、外貿(mào)建站、域名注冊(cè)、搜索引擎優(yōu)化響應(yīng)式網(wǎng)站

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

手機(jī)網(wǎng)站建設(shè)