Python【外】第一节 map()和匿名函数的配合使用
Python【外】第一节 map()和匿名函数的配合使用
###map()函数 map函数使用语法如下:`map(fun, iterable, ...)` 功能: map() 会根据提供的函数fun对指定序列iterable,...做映射。 具体实现方式: 第一个参数 function 以参数序列中的每一个元素调用 function 函数,返回每次调用之后产生的结果形成的序列。 举例 ```python 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))