Python - map() 函数
map()
函数将指定的函数应用于传入的可迭代对象的每个项,生成结果,并返回一个迭代器。
语法
map(function, iterables) --> map object
参数
- function:要为指定可迭代对象的每个元素调用的函数。
- iterables:一个或多个可迭代对象,用逗号分隔(例如字符串、列表、元组、字典)。
返回值
返回一个 map
类的迭代器对象。
考虑以下简单的平方函数。
def square(x):
return x*x
现在,我们可以使用数字列表调用 map 函数以获取结果列表,如下所示。
示例
>>> numbers=[1, 2, 3, 4, 5] >>> sqrs_of_numbers=map(square, numbers) >>> next(sqrs_of_numbers) 1 >>> next(sqrs_of_numbers) 4 >>> next(sqrs_of_numbers) 9 >>> next(sqrs_of_numbers) 16 >>> next(sqrs_of_numbers) 25
在上面的例子中,map()
函数应用于 numbers
列表中的每个元素。这将返回一个 map
类的对象,它是一个迭代器,因此我们可以使用 next() 函数来遍历列表。
使用 Lambda 表达式的 Map
map()
函数将列表中的每个元素传递给内置函数、lambda 函数或用户定义的函数,并返回映射对象。以下 map()
与 lambda 函数一起使用。
示例:使用 lambda 函数的 map()
>>> sqrs_of_numbers = map(lambda x: x*x, [1, 2, 3, 4]) >>> next(sqrs_of_numbers) 1 >>> next(sqrs_of_numbers) 4 >>> next(sqrs_of_numbers) 9 >>> next(sqrs_of_numbers) 16 >>> next(sqrs_of_numbers) 25
使用内置函数的 Map
在以下示例中,内置函数 pow() 用于映射两个列表对象,一个用于基数参数,一个用于索引参数。结果是一个列表,包含 bases 中每个数字的幂,其指数对应于 index 中的数字。
示例:使用内置函数的 map()
>>> bases=[10, 20, 30, 40, 50] >>> index=[1, 2, 3, 4, 5] >>> powers=list(map(pow, bases, index)) >>> powers [10, 400, 27000, 2560000, 312500000]