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
的對應的lst
的項放入結(jié)果的第一個列表中,將filter
中為False
的對應的lst的項放入結(jié)果的第二個列表中。
2. enumerate
enumerate(iterable, start=0)
enumerate
函數(shù)接收一個可迭代對象,并返回一個迭代對象。該迭代對象每次迭代返回一個元組,該元組包括一個序號和接收的可迭代對象的迭代值。start
參數(shù)用于設定序號的初始值,默認為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ù)的實現(xiàn)邏輯相當于如下代碼:
def enumerate(sequence, start=0): n = start for elem in sequence: yield n, elem n += 1
3. 列表推導式
該函數(shù)使用列表推導式判斷lst
里面值對應位置的filter
的值,并生成對應的分組列表。
列表推導式的簡單介紹可以查看:Python 實現(xiàn)過濾掉列表中唯一值的章節(jié)。
到此這篇關于Python根據(jù)過濾器拆分列表的文章就介紹到這了,更多相關Python根據(jù)過濾器拆分列表內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
使用python matplotlib 畫圖導入到word中如何保證分辨率
這篇文章主要介紹了使用python matplotlib 畫圖導入到word中如何保證分辨率的例子,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-04-04