Python學(xué)習(xí)路線實(shí)用技法:篩選序列中的元素
黃平網(wǎng)站制作公司哪家好,找成都創(chuàng)新互聯(lián)公司!從網(wǎng)頁(yè)設(shè)計(jì)、網(wǎng)站建設(shè)、微信開發(fā)、APP開發(fā)、成都響應(yīng)式網(wǎng)站建設(shè)公司等網(wǎng)站項(xiàng)目制作,到程序開發(fā),運(yùn)營(yíng)維護(hù)。成都創(chuàng)新互聯(lián)公司從2013年成立到現(xiàn)在10年的時(shí)間,我們擁有了豐富的建站經(jīng)驗(yàn)和運(yùn)維經(jīng)驗(yàn),來(lái)保證我們的工作的順利進(jìn)行。專注于網(wǎng)站建設(shè)就選成都創(chuàng)新互聯(lián)公司。序列中含有一些數(shù)據(jù),我們需要提取其中的值或根據(jù)某些標(biāo)準(zhǔn)對(duì)序列做刪減,
要篩選序列中的數(shù)據(jù),通常最簡(jiǎn)單的方法是使用列表推導(dǎo)式。
例如:
myList=[1,4,-5,10,-7,2,3,-1] print([n for n in myList if n>0]) print([n for n in myList if n<0])
結(jié)果:
[1, 4, 10, 2, 3] [-5, -7, -1]
使用列表推導(dǎo)式的一個(gè)潛在缺點(diǎn)是如果原始輸入非常大的話,這么做可能會(huì)產(chǎn)生一個(gè)龐大的結(jié)果。如果這是你需要考慮的問(wèn)題,那么可以使用生成器表達(dá)式通過(guò)迭代的方法產(chǎn)生篩選結(jié)果,例如:
myList=[1,4,-5,10,-7,2,3,-1] pos=(n for n in myList if n >0) for x in pos: print(x)
結(jié)果:
1 4 10 2 3
有時(shí)候篩選的標(biāo)準(zhǔn)沒法簡(jiǎn)單地表示在列表推導(dǎo)式或生成器表達(dá)式中。比如:假設(shè)篩選過(guò)程涉及異常處理或者其他一些復(fù)雜的細(xì)節(jié)??梢詫⑻幚砗Y選邏輯的代碼放到單獨(dú)的函數(shù)中,然后使用內(nèi)建的filter()函數(shù)處理,示例如下:
values=['1','2','-3','-','4','N/A','5'] def is_int(val): try: x=int(val) return True except ValueError: return False ivals=list(filter(is_int,values)) print(ivals)
結(jié)果:
['1', '2', '-3', '4', '5']
filter()創(chuàng)建了一個(gè)迭代器,因此如果我們想要的是列表形式的結(jié)果,請(qǐng)確保加上了list(),就像示例中那樣。
新聞標(biāo)題:Python學(xué)習(xí)路線實(shí)用技法:篩選序列中的元素-創(chuàng)新互聯(lián)
轉(zhuǎn)載注明:http://jinyejixie.com/article4/decsoe.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站策劃、面包屑導(dǎo)航、企業(yè)網(wǎng)站制作、網(wǎng)站維護(hù)、網(wǎng)站收錄、小程序開發(fā)
聲明:本網(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í)需注明來(lái)源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容