Python Map函数
阿黎逸阳 人气:0你应该听说过,应用Python,可以让你处理一天的重复工作量,缩短到几分钟甚至更短。从此解放上班时间,研究更多更有效率的工作方法。进一步提升工作效率,让工作更出彩。这不是广告,这是实锤。
本文和你一起探索Python中的map函数,让你以最短的时间明白这个函数的原理。也可以利用碎片化的时间巩固这个函数,让你在处理工作过程中更高效。
一、map函数的定义
map函数是Python中常用的内置函数,它会根据提供的函数对指定序列做映射。可以用来替换for循环语句,在不使用任何循环的情况下对所有指定元素进行迭代,让代码看起来更简洁。其基本调用语法如下:
map(func, *iterables)
func:函数。
*iterables:一个或多个序列。
二、map函数实例
对数列中的每个元数求平方
如果我们要用循环函数对数列中的每个数求平方,可用如下代码:
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函数才能显示出来。
求两个数列中对应元素的和
有的人可能会说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]
人工加一下可以发现答案是对的。
求数列中每个元素的长度
对python有了解的小伙伴应该知道len(str) 表示求str的长度。如果想要求数列中每个元素的长度应该怎么写呢?具体代码如下:
list(map(len, ['white', 'blue', 'green', 'yellow']))
得到结果:
[5, 4, 5, 6]
人工校验一下可以发现答案是对的。
把数列中每个英文元素转换成对应的大写
对python有了解的小伙伴应该知道str.upper()表示把str中的字母转换成对应的大写。如果想要把数列中每个元素中的英文都转换成对应的大写应该怎么操作?具体代码如下:
list(map(lambda x:x.upper(), ['white', 'blue', 'green', 'yellow']))
得到结果:
['WHITE', 'BLUE', 'GREEN', 'YELLOW']
人工校验一下可以发现答案是对的。
将字符串转换成数值数列
将字符串转换成数值数列的具体代码如下:
list(map(int, '789'))
得到结果:
[7, 8, 9]
人工校验一下可以发现答案是对的。
提取字典中的键
如果想提取字典中的键你能想到几种方法?本文提供两种方法供大家参考。
方法一:
应用字典自带的函数进行提取,具体代码如下:
dict_1 = {'星期一': '吃榴莲', '星期二': '吃葡萄' , '星期三': '吃西瓜', '星期四': '吃樱桃', '星期五': '吃波罗蜜', '星期六': '吃葡萄', '星期天': '吃猕猴桃'} list(dict_1.keys())
得到结果:
['星期一', '星期二', '星期三', '星期四', '星期五', '星期六', '星期天']
人工校验一下可以发现答案是对的。
方法二:
应用map函数进行提取,具体代码如下:
list(map(str, {'星期一': '吃榴莲', '星期二': '吃葡萄' , '星期三': '吃西瓜', '星期四': '吃樱桃', '星期五': '吃波罗蜜', '星期六': '吃葡萄', '星期天': '吃猕猴桃'}))
得到结果:
['星期一', '星期二', '星期三', '星期四', '星期五', '星期六', '星期天']
可以发现方法二和方法一得到的结果是一致的。从以上几个案例中可以发现应用map函数可以使得代码更加地简洁。
加载全部内容