filter, reduce, 和 map 是Python中用於對集合數據進行處理和轉換的內置函數。它們分別用於篩選、歸約和映射集合中的元素。 filter 函數: filter(function, iterable) 用於篩選集合中的元素。它接受一個函數 function 和一個可迭代的對象 it ...
filter, reduce, 和 map 是Python中用於對集合數據進行處理和轉換的內置函數。它們分別用於篩選、歸約和映射集合中的元素。
filter 函數:
filter(function, iterable) 用於篩選集合中的元素。它接受一個函數 function 和一個可迭代的對象 iterable,並返回一個包含 iterable 中滿足 function 條件的元素的新迭代器。
# 示例:使用 filter 過濾出偶數
numbers = [1, 2, 3, 4, 5, 6, 7, 8]
even_numbers = list(filter(lambda x: x % 2 == 0, numbers))
# even_numbers 現在包含 [2, 4, 6, 8]
reduce 函數:
reduce(function, iterable[, initializer]) 用於對集合中的元素進行累積操作。它接受一個函數 function 和一個可迭代的對象 iterable,並返回一個值,該值是通過將 function 應用於 iterable 中的元素進行累積得到的。你還可以提供一個可選的初始值 initializer。
from functools import reduce
# 示例:使用 reduce 計算列表元素的累積乘積
numbers = [1, 2, 3, 4]
product = reduce(lambda x, y: x * y, numbers) # 結果是 24
map 函數:
map(function, iterable, ...) 用於對集合中的每個元素應用同一個函數。它接受一個函數 function 和一個或多個可迭代的對象 iterable,並返回一個新的迭代器,其中每個元素都是將 function 應用於輸入集合中對應元素的結果。
# 示例:使用 map 將列表中的元素平方
numbers = [1, 2, 3, 4]
squared_numbers = list(map(lambda x: x**2, numbers))
#學習中遇到問題沒人解答?小編創建了一個Python學習交流群:711312441
# squared_numbers 現在包含 [1, 4, 9, 16]
這些函數在處理集合數據時非常有用,可以減少手動編寫迴圈的工作,提高代碼的簡潔性和可讀性。需要註意的是,Python 3 中的 reduce 函數被移到 functools 模塊中,因此需要使用 from functools import reduce 導入。