你应该听说过,应用Python,可以让你处理一天的重复工作量,缩短到几分钟甚至更短。
从此解放上班时间,研究更多更有效率的工作方法。进一步提升工作效率,让工作更出彩。
这不是广告,这是实锤。
Python在提升工作效率方面大放异彩,比如之前写过的【干货】用Python每天定时发送监控邮件、用Python爬取京东评论做个参考等。
本文和你一起探索Python中的map函数,让你以最短的时间明白这个函数的原理。
也可以利用碎片化的时间巩固这个函数,让你在处理工作过程中更高效。
本文目录
- map函数的定义
- map函数实例
例1 对数列中的每个元数求平方
例2 求两个数列中对应元素的和
例3 求数列中每个元素的长度
例4 把数列中每个英文元素转换成对应的大写
例5 将字符串转换成数值数列
例6 提取字典中的键
一、map函数的定义
map函数是Python中常用的内置函数,它会根据提供的函数对指定序列做映射。
可以用来替换for循环语句,在不使用任何循环的情况下对所有指定元素进行迭代,让代码看起来更简洁。
其基本调用语法如下:
`map(func, *iterables)`
**func:**
函数。
***iterables:** 一个或多个序列。
**二、map函数实例**

**例1:对数列中的每个元数求平方**
如果我们要用循环函数对数列中的每个数求平方,可用如下代码:
`new_list = []` `for i in [3, 4, 5, 6]:` `new_list.append(i**2)` `print(new_list)`
得到结果:
`[9, 16, 25, 36]`
而用map函数一行代码直接搞定,具体如下:
`list(map(lambda x:x**2, [3, 4, 5, 6]))`
得到结果:
`[9, 16, 25, 36]`
其中lambda x:x**2是函数,[3, 4, 5, 6]是原始数列,返回的结果是根据函数对原始数列做的映射。
不过map的结果要通过list函数才能显示出来。
**例2** **:求两个数列中对应元素的和**
有的人可能会说a是一个数列,b是另一个数列,求两个数列的和那还不简单,直接a+b不就好了。
那我们来做个小实验,看看python中两个数列直接用+加起来会得到什么,代码如下:
`a = [2, 6, 3]` `b = [3, 4, 5]` `a + b`
得到结果:
`[2, 6, 3, 3, 4, 5]`
可以发现python中两个数列求+,直接将两个数列拼接后返回。
聪明的你想到用map函数怎么操作了吗?具体代码如下:
`a = [2, 6, 3]` `b = [3, 4, 5]` `list(map(lambda a,b:a+b, a, b))`
得到结果:
`[5, 10, 8]`
人工加一下可以发现答案是对的。
**例3** **:求数列中每个元素的长度**
对python有了解的小伙伴应该知道len(str) 表示求str的长度。
如果想要求数列中每个元素的长度应该怎么写呢?具体代码如下:
`list(map(len, ['white', 'blue', 'green', 'yellow']))`
得到结果:
`[5, 4, 5, 6]`
人工校验一下可以发现答案是对的。
**例4** **:把数列中每个英文元素转换成对应的大写**
对python有了解的小伙伴应该知道str.upper()表示把str中的字母转换成对应的大写。
如果想要把数列中每个元素中的英文都转换成对应的大写应该怎么操作?具体代码如下:
`list(map(lambda x:x.upper(), ['white', 'blue', 'green', 'yellow']))`
得到结果:
`['WHITE', 'BLUE', 'GREEN', 'YELLOW']`
人工校验一下可以发现答案是对的。
**例5** **:将字符串转换成数值数列**
将字符串转换成数值数列的具体代码如下:
`list(map(int, '789'))`
得到结果:
`[7, 8, 9]`
人工校验一下可以发现答案是对的。
**例6** **:提取字典中的键**
如果想提取字典中的键你能想到几种方法?本文提供两种方法供大家参考。
**方法一:**
应用字典自带的函数进行提取,具体代码如下:
`dict_1 = {'星期一': '吃榴莲', '星期二': '吃葡萄' , '星期三': '吃西瓜', '星期四': '吃樱桃', '星期五': '吃波罗蜜', '星期六': '吃葡萄', '星期天': '吃猕猴桃'}` `list(dict_1.keys())`
得到结果:
`['星期一', '星期二', '星期三', '星期四', '星期五', '星期六', '星期天']`
人工校验一下可以发现答案是对的。
**方法二:**
应用map函数进行提取,具体代码如下:
`list(map(str, {'星期一': '吃榴莲', '星期二': '吃葡萄' , '星期三': '吃西瓜', '星期四': '吃樱桃', '星期五': '吃波罗蜜', '星期六': '吃葡萄', '星期天': '吃猕猴桃'}))`
得到结果:
`['星期一', '星期二', '星期三', '星期四', '星期五', '星期六', '星期天']`
可以发现方法二和方法一得到的结果是一致的。
从以上几个案例中可以发现应用map函数可以使得代码更加地简洁。
至此,Python中的map函数已讲解完毕,如想了解更多Python中的函数,可以翻看公众号中“学习Python”模块相关文章。
下一篇文章预告:【Python爬企查查】批量下载企业基本信息。
**往期回顾:**
**[**情人节表白烟花**](http://mp.weixin.qq.com/s?__biz=MzIxMjA1NzQzMQ==&mid=2247485763&idx=1&sn=ea67a30c344386e5d8f044a61ff4e2c5&chksm=974aa57ba03d2c6d90fd0e3495c7ebae028e9148b2c32b8b8463b9f66e2eff9ce33b288493a7&scene=21#wechat_redirect)**
**[520表白代码合集](http://mp.weixin.qq.com/s?__biz=MzIxMjA1NzQzMQ==&mid=2247484477&idx=1&sn=a0d216a658efb9bb3192dc018e357963&chksm=974aa805a03d21133bd687ce0841a9fedb74bff01594434dcab0f54f03b837d1f9dbff17bb05&scene=21#wechat_redirect)**
[**黑客帝国中的代码雨**](http://mp.weixin.qq.com/s?__biz=MzIxMjA1NzQzMQ==&mid=2247484629&idx=1&sn=e386e48681dc4b0d966d1c6019892d8f&chksm=974aa8eda03d21fb4244cd1a74665d6edd6dcc3bf57be568c4fce15b42f1fb91731608fa914d&scene=21#wechat_redirect)
[****逻辑回归项目实战-附Python实现代码****](http://mp.weixin.qq.com/s?__biz=MzIxMjA1NzQzMQ==&mid=2247484200&idx=1&sn=c0b2bccf213cf86e53775b4469d04ff7&chksm=974aaf10a03d2606feff81382b3018b4b73e9b711cea13301d40134907175bee1b75fbccbd02&scene=21#wechat_redirect)
[**Python绘制米老鼠,为余生请多指教打call**](http://mp.weixin.qq.com/s?__biz=MzIxMjA1NzQzMQ==&mid=2247486550&idx=1&sn=da8b986cd9f0bec0f5daf1959a02ca14&chksm=974aa06ea03d29782b68200b6dc09546af96122a32140b28e46923e8cd28a40883b3108e1cf9&scene=21#wechat_redirect)
[**Python常用函数合集1—clip函数、range函数等**](http://mp.weixin.qq.com/s?__biz=MzIxMjA1NzQzMQ==&mid=2247486633&idx=1&sn=fdd4d58b5f19461bfa833ed4a5e33093&chksm=974aa091a03d29879db5a178401fa74cf1b8387d6c71aa6fbd26e3c136736562e1fe20b06e1c&scene=21#wechat_redirect)
[**六一儿童节来临,送大朋友小朋友一只最近爆火的“可达鸭”**](http://mp.weixin.qq.com/s?__biz=MzIxMjA1NzQzMQ==&mid=2247486705&idx=1&sn=55856491e332872fee641e290843673c&chksm=974aa0c9a03d29df9340a1688ba97413e309a1f1256280222d1a019ab65535a3be7d1ba48496&scene=21#wechat_redirect)


**扫一扫关注我**
**13162366985**
**投稿** **微信号、手机号**