沒有技巧,都是用得多才能記下來的。
成都創(chuàng)新互聯(lián)公司長期為千余家客戶提供的網(wǎng)站建設服務,團隊從業(yè)經(jīng)驗10年,關(guān)注不同地域、不同群體,并針對不同對象提供差異化的產(chǎn)品和服務;打造開放共贏平臺,與合作伙伴共同營造健康的互聯(lián)網(wǎng)生態(tài)環(huán)境。為東昌府企業(yè)提供專業(yè)的成都網(wǎng)站設計、成都做網(wǎng)站,東昌府網(wǎng)站改版等技術(shù)服務。擁有十載豐富建站經(jīng)驗和眾多成功案例,為您定制開發(fā)。
其實這里涉及到區(qū)分什么是“方法”、什么是“函數(shù)”。是面向?qū)ο笾械母拍?,從某個對象中暴露出的方法, 如list1.sort()、list2.append() 等。
而print(), input() 可以直接用,不用"對象.print()"的形式。
Python內(nèi)置函數(shù)有很多,為大家推薦5個神仙級的內(nèi)置函數(shù):
(1)Lambda函數(shù)
用于創(chuàng)建匿名函數(shù),即沒有名稱的函數(shù)。它只是一個表達式,函數(shù)體比def簡單很多。當我們需要創(chuàng)建一個函數(shù)來執(zhí)行單個操作并且可以在一行中編寫時,就可以用到匿名函數(shù)了。
Lamdba的主體是一個表達式,而不是一個代碼塊。僅僅能在lambda表達式中封裝有限的邏輯進去。
利用Lamdba函數(shù),往往可以將代碼簡化許多。
(2)Map函數(shù)
會將一個函數(shù)映射到一個輸入列表的所有元素上,比如我們先創(chuàng)建了一個函數(shù)來返回一個大寫的輸入單詞,然后將此函數(shù)應有到列表colors中的所有元素。
我們還可以使用匿名函數(shù)lamdba來配合map函數(shù),這樣可以更加精簡。
(3)Reduce函數(shù)
當需要對一個列表進行一些計算并返回結(jié)果時,reduce()是個非常有用的函數(shù)。舉個例子,當需要計算一個整數(shù)列表所有元素的乘積時,即可使用reduce函數(shù)實現(xiàn)。
它與函數(shù)的最大的區(qū)別就是,reduce()里的映射函數(shù)(function)接收兩個參數(shù),而map接收一個參數(shù)。
(4)enumerate函數(shù)
用于將一個可遍歷的數(shù)據(jù)對象(如列表、元組或字符串)組合為一個索引序列,同時列出數(shù)據(jù)和數(shù)據(jù)下標,一般用在for循環(huán)當中。
它的兩個參數(shù),一個是序列、迭代器或其他支持迭代對象;另一個是下標起始位置,默認情況從0開始,也可以自定義計數(shù)器的起始編號。
(5)Zip函數(shù)
用于將可迭代的對象作為參數(shù),將對象中對應的元素打包成一個個元組,然后返回由這些元組組成的列表
當我們使用zip()函數(shù)時,如果各個迭代器的元素個數(shù)不一致,則返回列表長度與最短的對象相同。
這幾個函數(shù)在 Python 里面被稱為高階函數(shù),本文主要學習它們的用法。
filter 函數(shù)原型如下:
第一個參數(shù)是判斷函數(shù)(返回結(jié)果需要是 True 或者 False),第二個為序列,該函數(shù)將對 iterable 序列依次執(zhí)行 function(item) 操作,返回結(jié)果是過濾之后結(jié)果組成的序列。
簡單記憶:對序列中的元素進行篩選,獲取符合條件的序列。
返回結(jié)果為: ,使用 list 函數(shù)可以輸入序列內(nèi)容。
map 函數(shù)原型如下:
該函數(shù)運行之后生成一個 list,第一個參數(shù)是函數(shù)、第二個參數(shù)是一個或多個序列;
下述代碼是一個簡單的測試案例:
上述代碼運行完畢,得到的結(jié)果是: 。使用 print(list(my_new_list)) 可以得到結(jié)果。
map 函數(shù)的第一個參數(shù),可以有多個參數(shù),當這種情況出現(xiàn)后,后面的第二個參數(shù)需要是多個序列。
map 函數(shù)解決的問題:
reduce 函數(shù)原型如下:
第一個參數(shù)是函數(shù),第二個參數(shù)是序列,返回計算結(jié)果之后的值。該函數(shù)價值在于滾動計算應用于列表中的連續(xù)值。
測試代碼如下:
最終的結(jié)果是 6,如果設置第三個參數(shù)為 4,可以運行代碼查看結(jié)果,最后得到的結(jié)論是,第三個參數(shù)表示初始值,即累加操作初始的數(shù)值。
簡單記憶:對序列內(nèi)所有元素進行累計操作。
zip 函數(shù)原型如下:
zip 函數(shù)將可迭代的對象作為參數(shù),將對象中對應的元素打包成一個個元組,然后返回由這些元組組成的列表。
如果各個迭代器的元素個數(shù)不一樣,則返回列表長度與最短的對象相同,利用星號( * )操作符,可以將元組解壓為列表。
測試代碼如下:
展示如何利用 * 操作符:
輸出結(jié)果如下:
簡單記憶:zip 的功能是映射多個容器的相似索引,可以方便用于來構(gòu)造字典。
enumerate 函數(shù)原型如下:
參數(shù)說明:
該函數(shù)用于將一個可遍歷的數(shù)據(jù)對象組合為一個索引序列,同時列出數(shù)據(jù)和數(shù)據(jù)下標,一般用在 for 循環(huán)當中。
測試代碼如下:
返回結(jié)果為: 。
本文涉及的函數(shù)可以與 lambda 表達式進行結(jié)合,能大幅度提高編碼效率。最好的學習資料永遠是官方手冊