Python filter() 函式介紹

Python 的 filter() 函式是一個非常有用的函式,它可以讓你快速地過濾出你想要的資料。它可以讓你從一個資料序列中篩選出符合條件的資料,而不需要你自己寫迴圈來處理。

filter() 函式的語法如下:

filter(function, iterable)

其中,function 是一個函式,它接受一個參數,並且回傳一個布林值,True 或 False。iterable 是一個可迭代的資料序列,例如 list、tuple、dict 等。

filter() 函式會將 iterable 中的每一個元素傳入 function 中,如果 function 回傳 True,則該元素會被保留,如果回傳 False,則該元素會被過濾掉。最後,filter() 函式會回傳一個由符合條件的元素組成的資料序列。

下面是一個簡單的範例,使用 filter() 函式來篩選出資料序列中大於 10 的元素:

numbers = [2, 5, 8, 10, 15, 20]

def is_greater_than_10(x):
    return x > 10

filtered_numbers = filter(is_greater_than_10, numbers)

print(list(filtered_numbers))

執行結果:

[15, 20]

可以看到,filter() 函式只保留了大於 10 的元素,其他的元素都被過濾掉了。

另外,filter() 函式也可以接受一個 None 參數,此時,它會將資料序列中的所有元素都傳入 function 中,如果 function 回傳 True,則該元素會被保留,如果回傳 False,則該元素會被過濾掉。

下面是一個簡單的範例,使用 filter() 函式來篩選出資料序列中是偶數的元素:

numbers = [2, 5, 8, 10, 15, 20]

def is_even(x):
    return x % 2 == 0

filtered_numbers = filter(is_even, numbers)

print(list(filtered_numbers))

執行結果:

[2, 8, 10, 20]

可以看到,filter() 函式只保留了是偶數的元素,其他的元素都被過濾掉了。

Python filter() 函式的優點

Python 的 filter() 函式有許多優點,其中最大的優點就是可以讓你快速地過濾出你想要的資料,而不需要你自己寫迴圈來處理。

另外,filter() 函式也可以接受一個 None 參數,此時,它會將資料序列中的所有元素都傳入 function 中,如果 function 回傳 True,則該元素會被保留,如果回傳 False,則該元素會被過濾掉。

總結

Python 的 filter() 函式是一個非常有用的函式,它可以讓你快速地過濾出你想要的資料,而不需要你自己寫迴圈來處理。它也可以接受一個 None 參數,此時,它會將資料序列中的所有元素都傳入 function 中,如果 function 回傳 True,則該元素會被保留,如果回傳 False,則該元素會被過濾掉。

Categorized in:

Tagged in: