python的map和lambda
map
- 与其他方法连用
res = map(sum, ([1, 2, 3],)) # sum,方法需要一个列表参数,后边跟元组,元组中有一个参数,意思是调用一次
for i in res:
print(i) # 函数调用的返回值
注意:
map的第一个参数是方法,后边的参数是元组,当第一个参数函数有一个参数时,有一个元组,元组中多个元素,相当于多次调用第一个参数函数,并传入指定的参数
- 自定义函数
def map_func(n, m):
print(n, m)
return "ok{}".format(n)
if __name__ == '__main__':
res = map(map_func, (1, 2), (1, 3)) # map_func方法有两个参数,传两个元组,每个元组中有两个数据,表示调用两次
for i in res:
print(i)
注意:
当两个元组中的数据不一致时,调用次数以元素个数最少的元组为准
lambda
匿名函数
一次定义一次回受,不在其他地方使用
func = lambda x : x + 1
print(func(1)) # 结果是返回值2
这样没意义,和正常的函数没区别
与map等连用
res = map(lambda x : x + 1, (1, )) # 只在这用
for i in res:
print(i)