Python【外】第一节 map()和匿名函数的配合使用
map()函数
map函数使用语法如下:map(fun, iterable, ...)
功能: map() 会根据提供的函数fun对指定序列iterable,...做映射。
具体实现方式: 第一个参数 function 以参数序列中的每一个元素调用 function 函数,返回每次调用之后产生的结果形成的序列。
举例
def add_cu(xx, yy): xx + yy if __name__ == "__main__": aa = [1,2,3,4] bb = [1,2,3,4] res = map(add_cu, aa, bb)
上述返回的结果就[2, 4, 6, 8]
需要注意的是
- 在python2中, map()会直接返回一个列表。
- 在python3中, map()返回的是列表对应的iterator,因此要得到列表内的具体的值, 需要在iterator外面套一层list()
lambda
lambda使用语法如下: lambda x, y,..., z: 表达式
说明: lambda后面的x,y,...,z是函数的参数, 后面的表达式是前面参数的相互的作用。
实际举例如下: 可以看到, 是可以给lambda指定一个函数名,调用方式和普通的函数是一致的。
fu = lambda x,y: x + y res = fu(2,3) print(res) #结果为5
map() 和 lambda的结合
map()的第一个参数是一个函数映射, 可以通过lambda表达式直接给定,也可以通过函数def的方式给出函数名字。具体操作如下:
def add_cu(xx, yy): return xx + yy if __name__ == "__main__": aa = [1,2,3,4] bb = [1,2,3,4] fu = lambda x,y: x + y res1 = map(lambda x,y: x + y, aa, bb) res2 = map(fu, aa, bb) res3 = map(add_cu, aa, bb) print(list(res1)) print(list(res2)) print(list(res3))