Map方法,第一个参数要写一个匿名函数表达式,或者是一个函数引用,第二个第三个往后都是表达式用到的参数,参数一般是可迭代的
1、比如下面这个map方法,两个参数,第一个 lambda x: x*x是匿名函数表达式,实现列表中的数字的平方,依次从第二个参数列表【1,2,3】中取出赋值给x,执行x*x,输出结果:[1, 4, 9]
a = map(lambda x: x*x, [1,2,3])
print(list(a))
2、下面这个map方法,实现了将两个列表一样下标的值相加,非常简单,三个参数,后面两个参数【1,2,3】依次赋值给x,第三个参数【4,5,6】依次赋值给y,
结果:[5, 7, 9]
b = map(lambda x, y: x+y, [1, 2, 3], [4, 5, 6])
print(list(b))
3、map第一个参数也不是必须匿名函数,可以事先定义一个函数,不使用匿名函数,函数体有两个参数,将test这个函数,和l1,l2传给map方法,结果:[(1, 'sun'), (2, 'mon'), (3, 'tue'), (4, 'wen'), (5, 'thu'), (6, 'fri'), (7, 'sta')]
下面实现两个列表,分别取一样下标的值放到一个元组中,形成一个新的列表:
def test(x, y):
return (x, y)
l1 = [1, 2, 3, 4, 5, 6, 7]
l2 = ['sun', 'mon', 'tue','wen','thu','fri','sta']
c = map(test, l1, l2)
print(list(c))