map()函数 根据指定函数对指定序列做映射,在开发中使用map函数也是有效提高程序运行效率的办法之一
语法定义
''' function:函数名 iterable:一个序列或者多个序列,实际上这就是function对应的实参 ''' map(function, iterable, ...)
返回值
返回值是迭代器,注意返回的结果只能迭代一次,如果需要多次使用请提前保存结果并处理
代码示例
def func1(x): # 对序列中的每一个元素乘以10并返回 return x*10 ''' map() 会根据提供的函数对指定序列做映射。 序列中的每一个元素调用 func1 函数,返回新列表。 ''' x = map(func1,range(0,10)) print(list(x)) # map函数返回的迭代器只能迭代一次,迭代之后会自动清空 print(list(x)) print("***"*15) # 将map函数返回的迭代器保存转为list,可以多次使用 y = list(map(func1,range(0,10))) print(y) print(y)
输出结果
map函数与匿名函数一起使用
# 匿名函数:一个参数情况,传一个序列即可 x = list(map(lambda n:n*10,range(10))) # 序列中的每个元素*10 print(x) # 输出:[0, 10, 20, 30, 40, 50, 60, 70, 80, 90] # 匿名函数:两个参数情况,传两个序列即可,依次类推 y = list(map(lambda a,b:a+b,[1,2,3],[4,5,6])) # 两个序列相加 print(y) #输出:[5, 7, 9]
效率对比
列表推导式 > map映射函数 > 普通for循环
总结
1,map函数的参数是由函数和一个序列或者多个序列构成
2,map函数处理的结果是迭代器,而且只能迭代一次,如果需要多次使用,请提前保存