【Python】 map()函数介绍与使用

1.map函数语法及介绍:

map函数时Python的内置函数,根据指定的功能函数对参数序列做指定功能的映射。
其语法格式为:

map(func,iterable1[,iterable2....]

第一个参数func是接收一个函数名,对其后接收的一个或多个可迭代参数做该函数处理,其返回的结果是一个map对象或者说是迭代器(iterator)。其接收的函数可以是Python内置函数也可以是用户自定义的函数。

注意:
1.在看其他博主的博客时候发现有的博客说的是返回一个列表,在Python2.X版本中是直接返回一个映射后的列表,Python3.X中map函数的返回值是一个属于map类的对象或者说是一个迭代器,想要得到列表、元组、字典等需要用相应的函数进行进一步转换。
2.返回值是迭代器,但是返回的结果只能迭代一次,如果需要多次使用注意提前保存结果并处理。

如:

>>>a=(1,2,3)
   c=map(int,a)
   print(c)
#其运行结果如下,返回的是一个map对象/迭代器
<map object at 0x000001F8783A53C8>
[Finished in 0.2s]

2.具体应用:

  • 返回的迭代器只能迭代一次
def func(x):    #用户自定义函数做map的第一个参数
    return x*10
a=map(func,range(0,5))
print(list(a))     
print(list(a))  #map返回的迭代器只能够迭代一次
b=list(map(func,range(0,5)))    #将map返回的迭代器转列表后保存在变量b中后可多次调用
print(b)
print(b)

#上述代码执行结果为:
[0, 10, 20, 30, 40]
[]
[0, 10, 20, 30, 40]
[0, 10, 20, 30, 40]
可以很清楚的理解map函数及其返回值的特性
  • func可以是匿名函数lambda
>>>x=list(map(lambda x,y:x+y,[1,1,1],[1,2,3]))#匿名函数lambda的参数是两个因此map接受的参数对象也应该是两个
   print(x)
[2,3,4]
>>>print(map(None,[1,1,1],[1,2,3]))
[(1,1),(1,2),(1,3)]
#效果和zip函数等同
  • map函数可以配合int、list等函数实现类型变换

注:工作效率
列表推导式>map函数映射>for循环
读者可用此三种方法向列表中存入一万个、一百万个、一千万个数据比对其工作效率。

猜你喜欢

Python zip() 、zip() 与zip()函数
Python lambda表达式

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值