Python根據(jù)過(guò)濾器拆分列表
1. bifurcate
def bifurcate(lst, filter): return [ [x for i, x in enumerate(lst) if filter[i] == True], [x for i, x in enumerate(lst) if filter[i] == False] ] # EXAMPLES bifurcate(['beep', 'boop', 'foo', 'bar'], [True, True, False, True]) # [ ['beep', 'boop', 'bar'], ['foo'] ]
bifurcate函數(shù)通過(guò)一個(gè)過(guò)濾器filter定義的內(nèi)容,將輸入列表lst分成兩組。將filter中為True的對(duì)應(yīng)的lst的項(xiàng)放入結(jié)果的第一個(gè)列表中,將filter中為False的對(duì)應(yīng)的lst的項(xiàng)放入結(jié)果的第二個(gè)列表中。
2. enumerate
enumerate(iterable, start=0)
enumerate函數(shù)接收一個(gè)可迭代對(duì)象,并返回一個(gè)迭代對(duì)象。該迭代對(duì)象每次迭代返回一個(gè)元組,該元組包括一個(gè)序號(hào)和接收的可迭代對(duì)象的迭代值。start參數(shù)用于設(shè)定序號(hào)的初始值,默認(rèn)為0。
示例使用為:
>>> seasons = ['Spring', 'Summer', 'Fall', 'Winter'] >>> list(enumerate(seasons)) [(0, 'Spring'), (1, 'Summer'), (2, 'Fall'), (3, 'Winter')] >>> list(enumerate(seasons, start=1)) [(1, 'Spring'), (2, 'Summer'), (3, 'Fall'), (4, 'Winter')]
enumerate函數(shù)的實(shí)現(xiàn)邏輯相當(dāng)于如下代碼:
def enumerate(sequence, start=0): n = start for elem in sequence: yield n, elem n += 1
3. 列表推導(dǎo)式
該函數(shù)使用列表推導(dǎo)式判斷lst里面值對(duì)應(yīng)位置的filter的值,并生成對(duì)應(yīng)的分組列表。
列表推導(dǎo)式的簡(jiǎn)單介紹可以查看:Python 實(shí)現(xiàn)過(guò)濾掉列表中唯一值的章節(jié)。
到此這篇關(guān)于Python根據(jù)過(guò)濾器拆分列表的文章就介紹到這了,更多相關(guān)Python根據(jù)過(guò)濾器拆分列表內(nèi)容請(qǐng)搜索本站以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持本站!
版權(quán)聲明:本站文章來(lái)源標(biāo)注為YINGSOO的內(nèi)容版權(quán)均為本站所有,歡迎引用、轉(zhuǎn)載,請(qǐng)保持原文完整并注明來(lái)源及原文鏈接。禁止復(fù)制或仿造本網(wǎng)站,禁止在非maisonbaluchon.cn所屬的服務(wù)器上建立鏡像,否則將依法追究法律責(zé)任。本站部分內(nèi)容來(lái)源于網(wǎng)友推薦、互聯(lián)網(wǎng)收集整理而來(lái),僅供學(xué)習(xí)參考,不代表本站立場(chǎng),如有內(nèi)容涉嫌侵權(quán),請(qǐng)聯(lián)系alex-e#qq.com處理。
關(guān)注官方微信