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
相关文章
相关标签/搜索