概述:
map函数的原型是map(function, iterable, …),它的返回结果是一个迭代器。
参数function传的是一个函数名,可以是python内置的,也可以是自定义的。
参数iterable传的是一个可以迭代的对象,例如列表,元组,字符串这样的。
这个函数的意思就是将function应用于iterable的每一个元素,结果以列表的形式返回。注意到没有,iterable后面还有省略号,意思就是可以传很多个iterable,如果有额外的iterable参数,并行的从这些参数中取元素,并调用function。如果一个iterable参数比另外的iterable参数要短,就迭代到最短的结束为止。
例子1:一维情况
a=(1,2,3,4,5)
b=[1,2,3,4,5]
c="python"
la=map(str,a)
lb=map(str,b)
lc=map(str,c)
print(list(la))
#['1', '2', '3', '4', '5']
print(list(lb))
#['1', '2', '3', '4', '5']
print(list(lc))
#['p', 'y', 't', 'h', 'o', 'n']
例子2:多维情况
def add(x,y,z):
return x+y+z
list1=[1,2]
list2=[10,2,3]
list3=[1,2,3]
res=map(add,list1,list2,list3)
print(list(res))
#[12, 6]
#例子3:迭代器情况
def add(x,y,z):
return x+y+z
res=map(add,range(5),range(1,6),range(2,7))
#注意range()返回的是迭代器
print(list(res))
# [3, 6, 9, 12, 15]