map函数
———— 逐一对列表里的元素使用 定义的函数 进行操作
map(func, list)
Parameters:
func
: 用于处理list中每一个元素的函数
Return
:
返回一个map类型的数据,在新版的python中,map的返回值可以使用tuple()
显示出来,而无法使用list()
,将其转变为列表模式。会发生以下报错:
TypeError: 'tuple' object is not callable
实例:
-
配合lambda使用
注:当lambda中含有两个参数,则需要传入两个list
list_x = [1,2,3,4,5,6,7,8] list_y = [1,2,3,4,5,6,7,8] r = map(lambda x, y: x*x + y, list_x, list_y) tuple(r) # 新版python不支持直接使用list(r) >>> output (2, 6, 12, 20, 30, 42, 56, 72)
-
配合自定义的函数使用
coords
是一个包含若干个对象的列表,可以使用coords[0].x
返回第一个对象的x坐标。def get_x(each): return each.x def get_x(each): return each.y def get_x(each): return each.z tuple(map(get_x, coords)) # 函数只要一个参数,传入一个列表即可
一般tuple形式不便于计算,我们可以直接使用
np.array(tuple)
将其转变为numpy数组形式。a = np.array(tuple(map(get_x, coords)))
如果我们想要列表类型的数据,也可以使用numpy提供的
tolist()
方法,转换为列表a.tolist()