1 当作函数
python的map类似于,函数y = f( x )
x= [1,2,3,4]
y = map( lambda x:x**2,l)
print(list(x) )
map()传入的第一个参数是f,即函数对象本身。由于结果r是一个Iterator,Iterator是惰性序列,因此通过list()函数让它把整个序列都计算出来并返回一个list。你可能会想,不需要map()函数,写一个循环,也可以计算出结果。但是,map要比循环更快,更稳健。
2 多元函数
可以实现多个序列构成的函数运算。
例1 基于两个list的示例
lst = [[1,6,8,9] ,[2,3,8,1]]
f = lambda x,y : x+y if (x+y) >=15 else x-y
ss = map(f ,lst[0],lst[1])
print( list(ss) )
结果:[-1, 3, 16, 8]
例2 基于array的示例
import numpy as np
lst = np.array([ [1,2 ],[6,3],[8,8],[9,1] ])
f = lambda x,y : x+y if (x+y) >=15 else x-y
ss = map(f ,lst[:,0],lst[:,1])
print( list(ss) )
结果:[-1, 3, 16, 8]
3 批量处理
从文件读入的数据,是个字符串格式,如何将其转化成数组格式,map是很有效的方法。请看下例:
stData = '1,22,33,434,545,646,7567'
data = map( int, stData.split(',') )
print( list(data) )
结果: [ 1, 22, 33, 434, 545, 646, 7567 ]