mapfilter
mapmap(func,sep1,sep2,…)
map函数第一个参数接受的是一个函数,后面接收的是一个或多个可迭代的序列(列表、元组和字符串),他返回的是一个集合。
也可以理解为:map()函数是将 func函数作用于后面序列中的每一个数,并将所有的调用结果作为一个list返回,如果 func为None,作用同zip()函数。
1、当sep只有一个时,将函数func作用于这个sep序列的每一个元素上,并得到一个新的sep
map()函数工作流程:↓
从上图可以看出,函数func函数会作用于seq中的每个元素,得到func(seq[n])组成的列表。下面举得例子来帮助我们更好的理解这个工作过程。
1、
print(list( map(lambda x:x%2 range(5)) ))
[1,0,1,0]
一个sep时候,可以用filter()函数代替
2、当seq多于一个时,map可以并行(注意是并行)地对每个seq执行如下图所示的过程:
有图可以看出,我们seq1,seq2的对应位置元素同时 传入我们的函数,且得到一个返回值,我们将这个返回值存放在一个列表里面,
print( list(map(lambda x , y : (x,y), [2,4,6],[3,2,1])))
#输出[5, 6, 7]
#我们还可以定义返回值的形式
#比如元组:
print( list( map(lambda x,y:(x,y),[1,2,3],[4,5,6]) ))
#比如字典
print( list( map(lambda x,y:{x:y},[1,2,3],[4,5,6])))
#其实说实话 你如果看的不是很懂 你就这么理解 我们前面不是有参数么,
#我们后面也有对应个数的序列,你可以理解为 我们第一个参数对应第一个序列.
#第n个参数对应第n个序列 并把他们传入我们对应的函数进行运算,每一次运算的结果都会存放在 列表中
借鉴于:
map
格式:
filter:过滤函数
概念:filter函数 也会接收一个序列或者函数,他也会作用于 每次元素上 如果返回值为True 就会保留并返回 如果为Flase 就会舍去
格式:
舍去 奇数
def idd(x):
return x%2==0
x=[1,2,3,4]
print(list(filter(idd,x)))



