map就是循环帮你调用函数的
map函数的原型是map(function, iterable, …) ,它的返回结果是一个列表,它允许你不需要使用循环就可以编写简洁的代码。
参数function传的是一个函数名,可以是python内置的,也可以是自定义的。
参数iterable传的是一个可以迭代的对象,例如列表,元组,字符串这样的。可以传多个iterable。
Mark
如果有额外的iterable参数,并行的从这些参数中取元素,并调用function。如果一个iterable参数比另外的iterable参数要短,将以None扩展该参数元素。
使用Python内置函数
a = [1,-1,3,4,-7]
test = map(abs,a)
print(list(test))
使用自定义函数
def to_upper(x,y):
return x + y
list_01 = [1,3,5,6]
list_02 = [3,4,7,8]
a = map(to_upper,list_01,list_02)
print(list(a))
结合 lambda 函数使用
list_01 = [1,3,5,6]
list_02 = [3,4,7,8]
b = map(lambda x,y: x + y, list_01,list_02)
print(list(b))
若迭代对象长度不统一
def add(x,y,z):
return x,y,z
list1 = [1,2,3]
list2 = [1,2,3,4]
list3 = [1,2,3,4,5]
res = map(add, list1, list2, list3)
print(res)
输出:
[(1, 1, 1), (2, 2, 2), (3, 3, 3), (None, 4, 4), (None, None, 5)]