python内置高阶函数之map

python中的内置函数map可以实现迭代器之间映射功能,这也是函数的本质:把自变量迭代器→因变量迭代器
他的使用包括两个参数:
1.映射用的function。我们可以使用lambda匿名函数来放在该参数的位置上;
2.需要映射的迭代器参数,这里的迭代器参数可以时一个,也可以是多个,迭代的次数以最小长度的迭代器那个为准。
*map方法返回的的是一个map对象,这是一个迭代器的对象,我们可以使用list关键词对其进行类型转换。
我们可以通过以下的例子来感受map的作用。

print("#################使用map实现列表元素的映射###################")
lst = [1,2,3,4,1]
result = map(lambda x:x+1,lst)
print(result)		#返回一个迭代器map对象,可以使用list来进行类型转换
print(list(result))
print("#################使用多个列表作为参数传入,长度以短的为准###################")
xy = map(lambda x,y: x%2==1 and y%2 ==0,[1,3,2,4,1],[3,2,1,2])
for i in xy:
	print(i)
print("#################使用map实现向量操作###################")

def vector_add(x,y):
	return list(map(lambda x,y: x+y , x,y))
x,y=[1,2,3,4,5],[3,4,5,6,7]
print(vector_add(x,y))
print(vector_add(x,y=[2,3,4]))

运行之后的结果如下:

#################使用map实现列表元素的映射###################
<map object at 0x0000000002980EF0>
[2, 3, 4, 5, 2]
#################使用多个列表作为参数传入,长度以短的为准###################
False
True
False
False
#################使用map实现向量操作###################
[4, 6, 8, 10, 12]
[3, 5, 7]
[Finished in 0.8s]
发布了207 篇原创文章 · 获赞 16 · 访问量 9870

猜你喜欢

转载自blog.csdn.net/weixin_41855010/article/details/104693093