Python Map 函数的使用
map()是一个Python内建函数,它允许你不需要使用循环就可以编写简洁的代码。
一、Pythonmap()函数
这个map()函数采用以下形式:
map(function,iterable,...)
它需要两个必须的参数:
- function-针对每一个迭代调用的函数
- iterable-支持迭代的一个或者多个对象。在Python中大部分内建对象,例如lists,dictionaries,和tuples都是可迭代的。
在Python3中,map()返回一个与传入可迭代对象大小一样的map对象。在Python2中,这个函数返回一个列表list。
让我们看看一个例子,更好地解释map()函数如何运作的。假如我们有一个字符串列表,我们想要将每一个元素都转换成大写字母。
想要实现这个目的的一种方式是,使用传统的for循环:
directions=["north","east","south","west"] directions_upper=[] fordirectionindirections: d=direction.upper() directions_upper.append(d) print(directions_upper)
输出:
['NORTH','EAST','SOUTH','WEST'
使用map()函数,代码将会非常简单,非常灵活。
defto_upper_case(s): returns.upper() directions=["north","east","south","west"] directions_upper=map(to_upper_case,directions) print(list(directions_upper))
我们将会使用list()函数,来将返回的map转换成list列表:
输出:
['NORTH','EAST','SOUTH','WEST']
如果返回函数很简单,更Python的方式是使用lambda函数:
directions=["north","east","south","west"] directions_upper=map(lambdas:s.upper(),directions) print(list(directions_upper))
一个lambda函数是一个小的匿名函数。
下面是另外一个例子,显示如何创建一个列表,从1到10。
squares=map(lambdan:n*n,range(1,11)) print(list(squares))
输出:
[1,4,9,16,25,36,49,64,81,100]
`range()`函数生成一系列的整数。
二、对多个迭代对象使用map()
你可以将任意多的可迭代对象传递给map()函数。回调函数接受的必填输入参数的数量,必须和可迭代对象的数量一致。
下面的例子显示如何在两个列表上执行元素级别的操作:
defmultiply(x,y): returnx*y a=[1,4,6] b=[2,3,5] result=map(multiply,a,b) print(list(result))
输出:
[2,12,30]
同样的代码,使用lambda函数,会像这样:
a=[1,4,6] b=[2,3,5] result=map(lambdax,y:x*y,a,b) print(list(result))
当提供多个可迭代对象时,返回对象的数量大小和最短的迭代对象的数量一致。
让我们看看一个例子,当可迭代对象的长度不一致时:
a=[1,4,6] b=[2,3,5,7,8] result=map(lambdax,y:x*y,a,b) print(list(result))
超过的元素(7和8)被忽略了。
[2,12,30]
三、总结
Python的map()函数作用于一个可迭代对象,使用一个函数,并且将函数应用于这个可迭代对象的每一个元素。
以上就是PythonMap函数的使用的详细内容,更多关于PythonMap函数的资料请关注毛票票其它相关文章!
声明:本文内容来源于网络,版权归原作者所有,内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:czq8825#qq.com(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。