Python - map() 函数

2023-09-17 22:26:30

map()函数将指定的函数应用于传递的可迭代对象的每个项,生成结果并返回迭代器。

语法:

map(function, iterables) --> map object

参数:

函数
  1. :要为指定可迭代对象的每个元素调用的函数。
  2. 可迭代对象
  3. :一个或多个以逗号分隔的可迭代对象(如字符串、列表、元组、字典)。

返回值:

返回 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 functionslambda functionuser-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]

本文内容总结: