【python進階】map, filter, reduce用法
阿新 • • 發佈:2019-01-14
map
map會將一個函式對映到一個輸入列表的所有元素上面。
map(function_to_apply, list_of_inputs)
map可以讓我們用一種簡單而漂亮得多的方式來實現。
items = [1,2,3,4,5]
squared = list(map(lambda x: x ** 2, items))
print(squared)
輸出:[1, 4, 9, 16, 25]
大多數時候,我們使用匿名函式(lambdas)來配合map, 所以我在上面也是這麼做的。
Filter
顧名思義,filter過濾列表中的元素,並且返回一個由所有符合要求的元素所構成的列表,符合要求即函式對映到該元素時返回值為True. 這裡是一個簡短的例子:
number_list = range(-5, 5)
less_than_zero = filter(lambda x: x < 0, number_list)
print(list(less_than_zero))
output:[-5, -4, -3, -2, -1]
Reduce
Reduce執行的過程為,在每一次迭代中,將上一次的迭代結果和下一個元素一同傳入函式中
from functools import reduce
product = reduce(lambda x, y : x * y, range(1, 6))
print(product)
輸出:120