Python - map() 函数
2023-09-17 22:26:30
map()
函数将指定的函数应用于传递的可迭代对象的每个项,生成结果并返回迭代器。
语法:
map(function, iterables) --> map object
参数:
函数- :要为指定可迭代对象的每个元素调用的函数。 可迭代对象
- :一个或多个以逗号分隔的可迭代对象(如字符串、列表、元组、字典)。
返回值:
返回 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 with Lambda Expression)
map()
函数将列表中的每个元素传递给built-in functions、lambda function或user-defined function,并返回映射的对象。
以下map()
与 lambda 函数一起使用。
>>> 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(Map with Built-in Function)
在下面的示例中,提供了一个内置函数pow()来映射两个列表对象,每个基参数和索引参数一个。 结果是一个列表,其中包含每个数字的幂,以基数增加到索引中的相应数字。
>>> bases=[10, 20, 30, 40, 50]
>>> index=[1, 2, 3, 4, 5]
>>> powers=list(map(pow, bases, index))
>>> powers
[10, 400, 27000, 2560000, 312500000]
本文内容总结: