Python程序設(shè)計項目化教程課件:Python其他高階函數(shù)_第1頁
Python程序設(shè)計項目化教程課件:Python其他高階函數(shù)_第2頁
Python程序設(shè)計項目化教程課件:Python其他高階函數(shù)_第3頁
Python程序設(shè)計項目化教程課件:Python其他高階函數(shù)_第4頁
Python程序設(shè)計項目化教程課件:Python其他高階函數(shù)_第5頁
已閱讀5頁,還剩19頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

Python其他高階函數(shù)Python程序設(shè)計項目化教程目錄list函數(shù)filter函數(shù)目錄map函數(shù)reduce函數(shù)sorted函數(shù)zip函數(shù)list函數(shù)在Python中,函數(shù)可以被當(dāng)作變量一樣進(jìn)行操作,包括作為參數(shù)傳遞給其他函數(shù),或者作為返回值從函數(shù)中返回。這種能夠處理函數(shù)的函數(shù)就被稱為高階函數(shù)。簡而言之,高階函數(shù)就是能夠接受函數(shù)作為參數(shù)或者返回函數(shù)的函數(shù)。4list函數(shù)(1)list函數(shù)在Python中,list()是一個內(nèi)置函數(shù),用于將其他數(shù)據(jù)類型轉(zhuǎn)換為列表類型。list()的語法格式為:list(iterable)其中,iterable是可迭代對象,例如字符串、元組、集合和字典等。list()函數(shù)將iterable轉(zhuǎn)換為一個新的列表對象,并返回該列表對象。5list函數(shù)my_string='HelloWorld'my_list=list(my_string)print(my_list)輸出結(jié)果為:['H','e','l','l','o','','W','o','r','l','d']示例:將一個字符串轉(zhuǎn)換為列表。list函數(shù)my_tuple=(1,2,3,4)my_list=list(my_tuple)print(my_list)輸出結(jié)果為:[1,2,3,4]示例:將一個元組轉(zhuǎn)換成列表。list函數(shù)my_list=list()print(my_list)輸出結(jié)果為:[]除了將其他數(shù)據(jù)類型轉(zhuǎn)換為列表之外,list()函數(shù)還可以創(chuàng)建一個空列表,只需不傳遞參數(shù)即可。示例:利用list()函數(shù)創(chuàng)建一個空列表filter函數(shù)(2)filter函數(shù)在Python中,filter()是一個內(nèi)置函數(shù),用于根據(jù)給定的函數(shù)過濾序列中的元素。它的基本語法是:filter(function,iterable)其中,function是一個接收一個參數(shù)并返回True或False的函數(shù),iterable是一個序列或其他可迭代對象。filter()會返回一個迭代器,包含iterable中所有經(jīng)過function函數(shù)計算結(jié)果為True的元素。9filter函數(shù)numbers=[1,2,3,4,5,6,7,8,9,10]defis_greater_than_five(n):returnn>5result=list(filter(is_greater_than_five,numbers))print(result)輸出結(jié)果為:[6,7,8,9,10]示例:使用filter()過濾列表中所有大于5的元素。filter函數(shù)在這個例子中,定義了一個函數(shù)is_greater_than_five(n),用于判斷給定的參數(shù)n是否大于5。然后我們使用filter()函數(shù)將列表numbers中所有大于5的元素過濾出來,并將結(jié)果保存在一個列表中,最后打印這個列表。需要注意的是,filter()返回的是一個迭代器,如果需要得到一個列表或其他容器對象,需要使用list()等轉(zhuǎn)換函數(shù)將其轉(zhuǎn)換為所需的形式。還值得一提的是,Python3中的filter()函數(shù)返回的是一個迭代器,而不是Python2中的一個列表。如果需要在Python3中得到一個列表,需要顯式地使用list()函數(shù)進(jìn)行轉(zhuǎn)換。11map函數(shù)(3)map函數(shù)在Python中,map()是一個內(nèi)置函數(shù),用于將一個函數(shù)應(yīng)用于一個或多個序列中的所有元素,返回一個由函數(shù)調(diào)用結(jié)果組成的迭代器。它的基本語法是:map(function,iterable1[,iterable2,...,iterableN])其中,function是一個接受一個或多個參數(shù)的函數(shù),iterable1是一個序列或其他可迭代對象。如果提供了更多的可迭代對象,function函數(shù)也同時接受同樣數(shù)量的參數(shù),分別來自每個可迭代對象的相同位置的元素。12map函數(shù)numbers=[1,2,3,4,5]defdouble(x):returnx*2result=map(double,numbers)print(list(result))輸出結(jié)果為:[2,4,6,8,10]示例:使用map()將一個列表中所有元素加倍。map函數(shù)在這個例子中,定義了一個函數(shù)double(x),用于將給定參數(shù)x加倍。然后使用map()函數(shù)將列表numbers中所有元素應(yīng)用于函數(shù)double(),并將結(jié)果保存在一個迭代器中,最后使用list()函數(shù)將這個迭代器轉(zhuǎn)換為列表并打印結(jié)果。需要注意的是,Python3中的map()函數(shù)返回的是一個迭代器,而不是Python2中的一個列表。如果需要在Python3中得到一個列表,需要顯式地使用list()函數(shù)進(jìn)行轉(zhuǎn)換。此外,在Python2中,map()能夠接受多個可迭代對象,如果其中任何一個可迭代對象被耗盡了,迭代就會終止;而在Python3中,所有可迭代對象都必須具有相同的長度,否則迭代會在最短的可迭代對象被耗盡時終止。14reduce函數(shù)(4)reduce函數(shù)在Python中,reduce()是一個內(nèi)置函數(shù),用于從序列中的元素中依次執(zhí)行某個函數(shù),并將前一次的執(zhí)行結(jié)果作為下一次執(zhí)行的輸入。它的基本語法是:reduce(function,iterable[,initializer])其中,function是一個接受兩個參數(shù)的函數(shù),iterable是一個序列或其他可迭代對象。如果提供了initializer,則它會作為第一次調(diào)用的第一個參數(shù)傳遞給function,否則第一個參數(shù)就是iterable中的第一個元素。15reduce函數(shù)fromfunctoolsimportreduce#在Python3中需要先導(dǎo)入numbers=[1,2,3,4,5]defadd(x,y):returnx+yresult=reduce(add,numbers)print(result)輸出結(jié)果為:15示例:使用reduce()計算列表中所有元素的累加和。reduce函數(shù)在這個例子中,定義了一個函數(shù)add(x,y),用于將兩個參數(shù)相加。然后使用reduce()函數(shù)將列表numbers中的所有元素依次相加,并將結(jié)果保存在變量result中并打印結(jié)果。需要注意的是,為了使用reduce()函數(shù),需要在Python3中導(dǎo)入functools模塊。另外,Python3中已經(jīng)將reduce()移動到了functools模塊中,不再是內(nèi)置函數(shù)。如果需要使用reduce(),則需要在程序中導(dǎo)入該模塊??傮w而言,reduce()用于對序列中的元素進(jìn)行聚合計算,并且是一種優(yōu)雅、簡潔的寫法,可以減少代碼量和復(fù)雜度。17sorted函數(shù)(5)sorted函數(shù)在Python中,sorted()是一個內(nèi)置函數(shù),用于對一個序列進(jìn)行排序并返回新的排好序的序列。它的基本語法是:sorted(iterable,*,key=None,reverse=False)其中,iterable是序列,key是可選的排序規(guī)則,reverse是可選的排序方式。如果reverse=True,則會按照降序排序;否則按照升序排序。sorted(iterable[,key][,reverse]):對iterable進(jìn)行排序,可通過key參數(shù)指定排序規(guī)則,通過reverse參數(shù)指定排序方式。18sorted函數(shù)numbers=[5,1,3,4,2]result=sorted(numbers)print(result)輸出結(jié)果為:[1,2,3,4,5]示例:使用sorted()對一個列表中的元素進(jìn)行排序。sorted函數(shù)在這個例子中,定義一個列表numbers,包含了5個整數(shù)。使用sorted()函數(shù)對這個列表中的所有元素進(jìn)行升序排序,并將結(jié)果保存在變量result中并打印結(jié)果。需要注意的是,sorted()函數(shù)返回的是一個新的排好序的列表,并不會原地修改傳入的列表。如果需要在原列表的基礎(chǔ)上進(jìn)行修改,可以使用列表的sort()方法。20zip函數(shù)(6)zip函數(shù)在Python中,zip()是一個內(nèi)置函數(shù),用于將多個序列(可以是列表、元組、集合、字典等)中相同位置的元素打包成一個元組,并返回一個由這些元組組成的迭代器。它的基本語法是:zip(*iterables)其中,iterables是一個或多個序列或其他可迭代對象。21zip函數(shù)names=["Alice","Bob","Charlie"]ages=[25,30,35]result=zip(names,ages)print(list(result))輸出結(jié)果為:[('Alice',25),('Bob',30),('Charlie',35)]示例:使用zip()打包兩個列表中相同位置的元素。zip函數(shù)在這

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論