map与lambda
lambda本质就是(匿名)函数
改写前面的代码
x_list = [1,2,3,4,5,6,7,8,9]
r = map(lambda x: x*x,x_list)
print(list(r))
可以看到语法更简练
[1, 4, 9, 16, 25, 36, 49, 64, 81]
map可以传入多个列表的
x_list = [1,2,3,4,5,6,7,8,9]
y_list = [1,2,3,4,5,6,7,8,9]
r = map(lambda x,y: x*x+y,x_list,y_list)
print(list(r))
[2, 6, 12, 20, 30, 42, 56, 72, 90]
map(func,*iterables)
: 这里的*iterables
并不是指针,而是表示的是可变参数
x_list = [1,2,3,4,5,6,7]
y_list = [1,2,3,4,5,6,7,8,9]
r = map(lambda x,y: x*x+y,x_list,y_list)
print(list(r))
[2, 6, 12, 20, 30, 42, 56]
x_list = [1,2,3,4,5,6,7,8,9]
y_list = [1,2,3,4,5,6,7]
r = map(lambda x,y: x*x+y,x_list,y_list)
print(list(r))
发现结果是一样的
[2, 6, 12, 20, 30, 42, 56]
注意:
- lambda有几个参数,后面就必须传入几个列表
- 如果列表元素个数不一致,则会取结果较小的元素集合