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]

注意:

  1. lambda有几个参数,后面就必须传入几个列表
  2. 如果列表元素个数不一致,则会取结果较小的元素集合

results matching ""

    No results matching ""