這幾個(gè)函數(shù)在 Python 里面被稱為高階函數(shù),本文主要學(xué)習(xí)它們的用法。
在廣漢等地區(qū),都構(gòu)建了全面的區(qū)域性戰(zhàn)略布局,加強(qiáng)發(fā)展的系統(tǒng)性、市場前瞻性、產(chǎn)品創(chuàng)新能力,以專注、極致的服務(wù)理念,為客戶提供網(wǎng)站設(shè)計(jì)、成都網(wǎng)站設(shè)計(jì) 網(wǎng)站設(shè)計(jì)制作按需網(wǎng)站開發(fā),公司網(wǎng)站建設(shè),企業(yè)網(wǎng)站建設(shè),品牌網(wǎng)站制作,網(wǎng)絡(luò)營銷推廣,外貿(mào)網(wǎng)站建設(shè),廣漢網(wǎng)站建設(shè)費(fèi)用合理。
filter 函數(shù)原型如下:
第一個(gè)參數(shù)是判斷函數(shù)(返回結(jié)果需要是 True 或者 False),第二個(gè)為序列,該函數(shù)將對(duì) iterable 序列依次執(zhí)行 function(item) 操作,返回結(jié)果是過濾之后結(jié)果組成的序列。
簡單記憶:對(duì)序列中的元素進(jìn)行篩選,獲取符合條件的序列。
返回結(jié)果為: ,使用 list 函數(shù)可以輸入序列內(nèi)容。
map 函數(shù)原型如下:
該函數(shù)運(yùn)行之后生成一個(gè) list,第一個(gè)參數(shù)是函數(shù)、第二個(gè)參數(shù)是一個(gè)或多個(gè)序列;
下述代碼是一個(gè)簡單的測試案例:
上述代碼運(yùn)行完畢,得到的結(jié)果是: 。使用 print(list(my_new_list)) 可以得到結(jié)果。
map 函數(shù)的第一個(gè)參數(shù),可以有多個(gè)參數(shù),當(dāng)這種情況出現(xiàn)后,后面的第二個(gè)參數(shù)需要是多個(gè)序列。
map 函數(shù)解決的問題:
reduce 函數(shù)原型如下:
第一個(gè)參數(shù)是函數(shù),第二個(gè)參數(shù)是序列,返回計(jì)算結(jié)果之后的值。該函數(shù)價(jià)值在于滾動(dòng)計(jì)算應(yīng)用于列表中的連續(xù)值。
測試代碼如下:
最終的結(jié)果是 6,如果設(shè)置第三個(gè)參數(shù)為 4,可以運(yùn)行代碼查看結(jié)果,最后得到的結(jié)論是,第三個(gè)參數(shù)表示初始值,即累加操作初始的數(shù)值。
簡單記憶:對(duì)序列內(nèi)所有元素進(jìn)行累計(jì)操作。
zip 函數(shù)原型如下:
zip 函數(shù)將可迭代的對(duì)象作為參數(shù),將對(duì)象中對(duì)應(yīng)的元素打包成一個(gè)個(gè)元組,然后返回由這些元組組成的列表。
如果各個(gè)迭代器的元素個(gè)數(shù)不一樣,則返回列表長度與最短的對(duì)象相同,利用星號(hào)( * )操作符,可以將元組解壓為列表。
測試代碼如下:
展示如何利用 * 操作符:
輸出結(jié)果如下:
簡單記憶:zip 的功能是映射多個(gè)容器的相似索引,可以方便用于來構(gòu)造字典。
enumerate 函數(shù)原型如下:
參數(shù)說明:
該函數(shù)用于將一個(gè)可遍歷的數(shù)據(jù)對(duì)象組合為一個(gè)索引序列,同時(shí)列出數(shù)據(jù)和數(shù)據(jù)下標(biāo),一般用在 for 循環(huán)當(dāng)中。
測試代碼如下:
返回結(jié)果為: 。
本文涉及的函數(shù)可以與 lambda 表達(dá)式進(jìn)行結(jié)合,能大幅度提高編碼效率。最好的學(xué)習(xí)資料永遠(yuǎn)是官方手冊
不知道你的dataSet 是什么數(shù)據(jù),是否是從數(shù)據(jù)庫取出來的結(jié)果游標(biāo),
如果是的 那么dataSet 只能用一次,用空之后它就為空了
檢測方法
D = map(set,dataSet)
print dataSet #看看這里的 dataSet 是否為空了
如果是以上說的情況 很容易解決
操作之前 給 給個(gè)變量 接納一哈 這個(gè)結(jié)果集
tmp = dateSet
D = map(set,tmp)
print len(list(D))
print len(list(D))
1、高階函數(shù)
變量可以指向函數(shù),函數(shù)的參數(shù)可以接收變量,那么函數(shù)可以接收另一個(gè)函數(shù)作為參數(shù),這種函數(shù)稱為高階函數(shù)。
(1)把函數(shù)作為實(shí)參
(2)把函數(shù)作為返回值
2、系統(tǒng)的內(nèi)置高階函數(shù)
(1)map函數(shù):接收兩個(gè)參數(shù),一個(gè)是函數(shù),一個(gè)是序列,map將傳入的函數(shù)依次作用到序列的每個(gè)元素,并且把結(jié)果作為新的列表返回
(2)reduce函數(shù):把一個(gè)函數(shù)作用到一個(gè)序列上,這個(gè)函數(shù)必須接收兩個(gè)參數(shù),reduce把結(jié)果和序列的下一個(gè)元素做累積計(jì)算
(3)filter函數(shù):也接收一個(gè)函數(shù)和一個(gè)序列,和map函數(shù)不同的是,filter函數(shù)把傳入的函數(shù)依次作用于每個(gè)元素,然后返回返回值是True的元素
(4)sorted函數(shù):排序函數(shù)
把用戶名按照首字母不區(qū)分大小寫排序
(5)sorted()函數(shù)按照關(guān)鍵字排序
關(guān)鍵字:商品個(gè)數(shù)
(6)sorted()函數(shù)按照關(guān)鍵字排序,用鍵值來查找
(7)lambda匿名函數(shù):有時(shí)候傳參數(shù)時(shí)不需要顯示自定義的函數(shù),直接傳入匿名函數(shù)更方便;冒號(hào)前面的x,y表示函數(shù)參數(shù),匿名函數(shù)不需要擔(dān)心函數(shù)名的沖突,匿名函數(shù)也是一個(gè)函數(shù)對(duì)象,可以把匿名函數(shù)賦值給一個(gè)變量,再利用變量來調(diào)用函數(shù),匿名函數(shù)也可以作為返回值返回
3、高階函數(shù)的應(yīng)用:
(1)sorted函數(shù):
(2)sorted函數(shù)默認(rèn)是從小到大排序
4、裝飾器
裝飾器就是用來裝飾函數(shù)的:想要增加原有函數(shù)的功能,但是不希望修改原有函數(shù)的定義,在代碼運(yùn)行期間動(dòng)態(tài)增加功能的方式
(1)此裝飾器的功能:計(jì)算函數(shù)的運(yùn)行時(shí)間
import functools
@functools.wraps(f)? ?##保留原有函數(shù)的屬性
運(yùn)行結(jié)果:
(2)此裝飾器的功能:用戶登錄認(rèn)證
運(yùn)行結(jié)果:
(3)此裝飾器的功能:認(rèn)證用戶的同時(shí),顯示用戶的轉(zhuǎn)賬金額
import inspect
inspect.getcallargs()將傳的參數(shù)封裝為一個(gè)字典,字典的key值是形式參數(shù),value值是實(shí)參
(4)此裝飾器的功能:確保收到的每個(gè)參數(shù)都是整數(shù),是整數(shù)就求和,否則拋出錯(cuò)誤
(5)此裝飾器的功能:給裝飾器傳參數(shù),是整數(shù)和浮點(diǎn)數(shù)就求和
python學(xué)習(xí)網(wǎng),大量的免費(fèi)python視頻教程,歡迎在線學(xué)習(xí)!
網(wǎng)頁標(biāo)題:python里map函數(shù) python的map函數(shù)用法
分享網(wǎng)址:http://aaarwkj.com/article46/docjjhg.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供全網(wǎng)營銷推廣、網(wǎng)站制作、網(wǎng)站設(shè)計(jì)、、面包屑導(dǎo)航、網(wǎng)站排名
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)