map() reduce() filter () 函數的用法和區別

1 map(func,iter) 函數,讓列表的每一個元素都執行一次func的函數,而且所有返回結果python

2 filter()函數函數

# 去除字符串的標點字符
string = '     \n\n\n張\n\n三\n\n\n ','     李  四\n\n\n\n\n\n '

# 1 map(func,iter)
def strip_s(string):
    list = string.replace('\n','')
    list = list.replace(' ','')
    return list
s = map(strip_s,string)
s = list(s)
print(s)
#['張三', '李四']
# 2 取出10之內的偶數
s = [2,3,4,5,6,1,7,8,9,10]
def ou(x):
    if x %2 ==0:
        return x

rs = map(ou,s)
rs = list(rs)
print(rs)
# [2, None, 4, None, 6, None, None, 8, None, 10]

rs = filter(ou,s)
rs = list(rs)
print(rs)
#[2, 4, 6, 8, 10]
##########
1 map()函數會將列表的每一個元素都執行一次某個函數(傳遞一個參數),而且將返回全部結果放在列表中
2 filter()函數會將列表的每一個元素都執行一次某個函數(傳遞一個參數),會將返回的結果進行篩選,只會取出條件爲真或不爲 None的元素
3 reduce() 會將列表中的沒兩個元素執行一次,(兩個參數)而且能夠將前兩個計算的結果和列表中第三個計算,接着第四個
最後返回計算的結果
##########

3 reduce() 函數code

from functools import reduce

string = ['hello','world','nihao','shijie']

def add(x,y):
    return x + '*' + y

s = reduce(add,string)
print(s)
#hello*world*nihao*shijie
相關文章
相關標籤/搜索