1. 程式人生 > >【python進階】map, filter, reduce用法

【python進階】map, filter, reduce用法

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