map函數
map(func, Iterable)
接收一個func函數和一個序列Iterable,將Iterable的每個元素經過func函數處理後,返回一個新的Iterable。
類似列表推導式:[func(item) for item in iterable]
#!/usr/bin/env python
# encoding: utf-8
def sqr(item):
return item * item
if __name__ == '__main__':
objList = [1, 2, 3]
newList = map(sqr, objList)
print(newList)
print(list(newList))
print([sqr(item) for item in objList])
輸出結果:
<map object at 0x006325D0>
[1, 4, 9]
[1, 4, 9]
reduce函數
reduce(function, sequence, initial=None)
接收一個函數function和一個序列sequence,該函數需要接收兩個參數x和y;
若initial的值爲None,則function首次調用從sequence取兩個元素分別賦值給參數x和y;
若initial的值不爲None,則function首次調用參數x=initial,另外從sequence取一個元素賦值給參數y;
函數function上一次調用的返回結果作爲x參數的值,並從sequence剩餘元素中選取一個元素作爲參數y的值傳遞給函數function,直到sequence元素選取結束;
返回結果爲最後一次function調用的返回值。
#!/usr/bin/env python
# encoding: utf-8
from functools import reduce
def add(x, y):
return x + y
if __name__ == '__main__':
objList = [1, 2, 3, 4]
print(reduce(add, objList))
print(reduce(add, objList, 20))
輸出結果爲:
10
30
filter
filter(func, Iterable)
接收一個函數func和一個序列Iterable
函數func用於過濾掉Iterable中不符合條件的元素,返回一個由使得函數func返回值爲True的元素組成的新的可迭代對象。
#!/usr/bin/env python
# encoding: utf-8
def func(item):
return item % 2 == 0
if __name__ == '__main__':
objList = [1, 2, 3, 4, 5]
print(filter(func, objList))
print(list(filter(func, objList)))
輸出結果爲:
<filter object at 0x01E52270>
[2, 4]