Python根據(jù)過濾器拆分列表
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ù)通過一個過濾器filter
定義的內(nèi)容,將輸入列表lst分成兩組。將filter
中為True
的對應(yīng)的lst
的項(xiàng)放入結(jié)果的第一個列表中,將filter
中為False
的對應(yīng)的lst的項(xiàng)放入結(jié)果的第二個列表中。
2. enumerate
enumerate(iterable, start=0)
enumerate
函數(shù)接收一個可迭代對象,并返回一個迭代對象。該迭代對象每次迭代返回一個元組,該元組包括一個序號和接收的可迭代對象的迭代值。start
參數(shù)用于設(shè)定序號的初始值,默認(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
里面值對應(yīng)位置的filter
的值,并生成對應(yīng)的分組列表。
列表推導(dǎo)式的簡單介紹可以查看:Python 實(shí)現(xiàn)過濾掉列表中唯一值的章節(jié)。
到此這篇關(guān)于Python根據(jù)過濾器拆分列表的文章就介紹到這了,更多相關(guān)Python根據(jù)過濾器拆分列表內(nèi)容請搜索本站以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持本站!
版權(quán)聲明:本站文章來源標(biāo)注為YINGSOO的內(nèi)容版權(quán)均為本站所有,歡迎引用、轉(zhuǎn)載,請保持原文完整并注明來源及原文鏈接。禁止復(fù)制或仿造本網(wǎng)站,禁止在非www.sddonglingsh.com所屬的服務(wù)器上建立鏡像,否則將依法追究法律責(zé)任。本站部分內(nèi)容來源于網(wǎng)友推薦、互聯(lián)網(wǎng)收集整理而來,僅供學(xué)習(xí)參考,不代表本站立場,如有內(nèi)容涉嫌侵權(quán),請聯(lián)系alex-e#qq.com處理。