一、過濾規則
List過濾是一種非常常見的數據處理手段。在進行List過濾時,需要制定過濾規則,這個規則包含兩部分:需要過濾的對象和對對象的要求。
需要過濾的對象可以是任何一個List,而對對象的要求則可以是數據類型、數值大小、屬性值等等。具體的要求需要根據過濾的目的來制定。
在Python中,可以使用filter函數進行List過濾。filter函數需要兩個參數:一個是bool類型的函數,另一個是需要過濾的List。這個bool函數的作用就是對每個對象進行判斷,如果符合要求,則返回True,否則返回False。在filter函數的執行過程中,只有返回True的對象才會被保留下來。
def is_positive(x): return x > 0 list(filter(is_positive, [-1, 2, -3, 4, -5]))
輸出結果為[2, 4],因為只有2和4符合is_positive函數的要求。
二、多個過濾條件
有時候需要同時滿足多個條件才能進行過濾,在Python中,可以使用多個bool函數把這些條件串起來。
def is_even(x): return x % 2 == 0 def is_positive(x): return x > 0 list(filter(lambda x: is_even(x) and is_positive(x), [-1, 2, -3, 4, -5]))
輸出結果為[2, 4],這是因為只有2和4同時滿足is_even和is_positive函數的要求。
三、lambda函數過濾
有時候過濾規則比較簡單,可以使用lambda函數定義bool函數來進行過濾。
list(filter(lambda x: x > 0, [-1, 2, -3, 4, -5]))
輸出結果為[2, 4],這是因為lambda函數的要求是x > 0。
四、列表推導式過濾
除了使用filter函數,還可以使用列表推導式來進行List過濾。
[x for x in [-1, 2, -3, 4, -5] if x > 0]
輸出結果為[2, 4]。
五、任意類型的List過濾
在使用List過濾時,通常是對數字或字符串等基本類型進行過濾。但是,List過濾也可以對任意數據類型進行過濾。
例如,在下面這個代碼中,我們通過過濾來找出一個字典List中包含Country的所有字典。
list(filter(lambda x: 'Country' in x, [{'Country': 'USA', 'Code': 'us'}, {'Country': 'Japan', 'Code': 'jp'}, {'Code': 'cn'}]))
輸出結果為[{‘Country’: ‘USA’, ‘Code’: ‘us’}, {‘Country’: ‘Japan’, ‘Code’: ‘jp’}],這是因為這兩個字典都包含了Country這個key。
六、總結
在Python中,List過濾是一種非常常見的數據處理手段。在進行List過濾時,需要制定過濾規則,這個規則包含需要過濾的對象和對對象的要求。可以通過filter函數、多個bool函數、lambda函數和列表推導式等方式進行List過濾。在使用List過濾時,不僅可以對數字或字符串等基本類型進行過濾,還可以對任意數據類型進行過濾。
原創文章,作者:HODC,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/143684.html