python中 lambda表达式及map

python中 lambda表达式及map

#lamba 前面 a b表示入参 :后面表示逻辑
# add=lambda a,b:a*8+b
# print(add(4,7))
# print((lambda a,b:a*8+b)(4,7))

# lambda表达式的使用场景
# 一般适用于创建一些临时性的,小巧的函数。比如上面的 power函数,我们当然可以使用 def
# 来定义,但使用 lambda 来创建会显得很简洁,尤其是在高阶函数的使用中。
#定义一个函数,传入一个list,将list每个元素的值加1

# def add (l=[]):
# return [x+1 for x in l]
#
# print(add([1,5,6]))

# def add (a,l=[]):
# return [x+a for x in l]
#
# print(add(3,l=[4,5,6,8]))
#
# def add2(fun,l=[]):
# return [fun(x) for x in l]
#
# print(add2(lambda x:x+1,[4,5,6,8]))
# print(add2(lambda x:x+2,[4,5,6,8]))
#
# 还是觉得多加一个参数更好,在java中也是多一个参数就解决了

#map其实就是map(function(),(参数))

def add(a):
return a+1

result=map(add,[5,8,9,6,7])
#直接打印会出现地址,需要用list()函数转成表
print(list(result))
print(type(result))
#结果为[6, 9, 10, 7, 8] <class ‘map’>

#使用lambda

result1=map(lambda a:a+1,[1,4,5,7,9])
print(list(result1))
#结果[2, 5, 6, 8, 10]

#map中函数有多个参数

result2=map(lambda a,b:a+b,[1,5,9,7],[5,6,99,7])
print(list(result2))
#结果[6, 11, 18, 14]

#当参数个数不同以少的为准
result3=map(lambda a,b:a+b,[1,5,9,7],[5,6,7])
print(list(result3))
#结果[6, 11, 16]