时间:2021-05-22
map()是一个 Python 内建函数,它允许你不需要使用循环就可以编写简洁的代码。
一、Python map() 函数
这个map()函数采用以下形式:
map(function, iterable, ...)它需要两个必须的参数:
在 Python 3 中,map()返回一个与传入可迭代对象大小一样的 map 对象。在 Python 2中,这个函数返回一个列表 list。
让我们看看一个例子,更好地解释map()函数如何运作的。假如我们有一个字符串列表,我们想要将每一个元素都转换成大写字母。
想要实现这个目的的一种方式是,使用传统的for循环:
directions = ["north", "east", "south", "west"]directions_upper = []for direction in directions: d = direction.upper() directions_upper.append(d)print(directions_upper)输出:
['NORTH', 'EAST', 'SOUTH', 'WEST'
使用 map() 函数,代码将会非常简单,非常灵活。
def to_upper_case(s): return s.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(lambda s: s.upper(), directions)print(list(directions_upper))一个 lambda 函数是一个小的匿名函数。
下面是另外一个例子,显示如何创建一个列表,从1到10。
输出:
[1, 4, 9, 16, 25, 36, 49, 64, 81, 100]
`range()` 函数生成一系列的整数。
二、对多个迭代对象使用map()
你可以将任意多的可迭代对象传递给map()函数。回调函数接受的必填输入参数的数量,必须和可迭代对象的数量一致。
下面的例子显示如何在两个列表上执行元素级别的操作:
def multiply(x, y): return x * ya = [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(lambda x, y: x*y, a, b)print(list(result))当提供多个可迭代对象时,返回对象的数量大小和最短的迭代对象的数量一致。
让我们看看一个例子,当可迭代对象的长度不一致时:
a = [1, 4, 6]b = [2, 3, 5, 7, 8]result = map(lambda x, y: x*y, a, b)print(list(result))超过的元素 (7 和 8 )被忽略了。
[2, 12, 30]
三、总结
Python 的 map()函数作用于一个可迭代对象,使用一个函数,并且将函数应用于这个可迭代对象的每一个元素。
以上就是Python Map 函数的使用的详细内容,更多关于Python Map 函数的资料请关注其它相关文章!
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
map函数是Python里面比较重要的函数,设计灵感来自于函数式编程。Python官方文档中是这样解释map函数的:map(function,iterable,
前言在python里有一个函数map(),它有点高大上的感觉。本文将详细给大家介绍python中map()函数使用的相关内容,分享出来供大家参考学习,下面话不多
对于多线程的使用,我们经常是用thread来创建,比较繁琐.在Python中,可以使用map函数简化代码。map可以实现多任务的并发简单说明map()实现多线程
pythonmap函数map()函数map()是Python内置的高阶函数,它接收一个函数f和一个list,并通过把函数f依次作用在list的每个元素上,得到一
Python内建的filter()函数用于过滤序列。和map()类似,filter()也接收一个函数和一个序列。和map()不同的时,filter()把传入的函