filter() 是一個內建的 Python 函數,用來過濾一個可迭代對象(例如列表、元組等)中的元素。它會根據你提供的函數來判斷每個元素是否符合條件,並返回一個新的迭代器,這個迭代器包含所有符合條件的元素。
newlist = filter(function, iterable)
numbers = [1, 2, 3, 4, 5]
# 篩選出偶數
even_numbers = filter(lambda x: x % 2 == 0, numbers)
# 將迭代器轉換為列表
even_numbers_list = list(even_numbers)
print(even_numbers_list) # 输出 [2, 4]
在這個例子中:
# 篩選出字符串長度大於 3 的元素
fruits = ['apple', 'banana', 'cherry', 'date']
long_fruits = filter(lambda x: len(x) > 3, fruits)
print(list(long_fruits)) # 输出 ['apple', 'banana', cherry']
filter() 函數提供了一種方便的方法來過濾序列中的元素。
lambda 函數通常與 filter() 一起使用,用來定義篩選條件。
filter() 返回的是一個迭代器,需要使用 list() 或其他函數將其轉換為其他數據類型。
filter() 返回的是一個迭代器,而不是一個列表。如果你需要一個列表,需要使用 list() 將其轉換。
lambda 函數可以定義更複雜的篩選條件,但過於複雜的邏輯可能會降低程式碼的可讀性。
filter() 函數是 Python 中一個非常有用的工具,可以幫助我們高效地處理序列數據。通過掌握 filter() 的用法,可以寫出更加簡潔、優雅的 Python 程式碼。