Python知识:关于map

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 ] 

Guess you like

Origin blog.csdn.net/gongdiwudu/article/details/119323914