#encoding=UTF-8
import sys
# 高階函數
'''高階函數實際上是參數可接受函數的函數
即參數為函數的函數
'''
# map()
'''map()接收兩個參數,一個是函數,一個是序列,
將此函數分別作用于該序列的每個元素,
返回處理后的序列結果
'''
def c2(x):
return x*2
re=map(c2,range(10))
print 'map結果:',re
# reduce()
'''reduce()接收兩個參數,一個是函數【這個函數必須接收兩個參數】,一個是序列,
reduce()函數將每次參數函數的結果繼續與序列的下一個元素進行累積計算
返回計算結果
'''
#列表求和
def jia(x,y):
return x+y
re=reduce(jia,range(5))
print 'reduce結果:',re
# filter()
'''map()接收兩個參數,一個是函數,一個是序列,
filter() 把傳入的函數依次作用于每個元素,
然后根據返回值是 True 還是 False 決定保留還是丟棄該元素
'''
#保留偶數
def is_os(num):
return num % 2 ==0
re=filter(is_os,range(5))
print 'filter結果:',re
?
運行結果:
map結果: [0, 2, 4, 6, 8, 10, 12, 14, 16, 18]
reduce結果: 10
filter結果: [0, 2, 4]