Python map() 函数示例

Python map() 将函数应用于作为输入给出的迭代器的所有项。例如,迭代器可以是列表、元组、集合、字典、字符串,并返回可迭代的映射对象。 Python map() 是一个内置函数。

句法

map(function, iterator1,iterator2 ...iteratorN)

参数

以下是两个重要的

  • 函数:必须赋予映射的一个函数,它将应用于迭代器中可用的所有项目。
  • iterator:一个可迭代的强制对象。它可以是列表、元组等。你可以将多个迭代器对象传递给 map() 函数。

回报值

map() 函数将对迭代器内的所有项目应用给定的函数,并返回一个可迭代的映射对象,即可组、列表等。

map() 函数如何工作?

map() 函数接受两个输入,一个函数和一个可迭代对象。传递给 map() 的函数是一个普通函数,它将迭代给定的可迭代对象中存在的所有值。

例如,假设您有一个数字列表,并且您想要找到每个数字的平方。

为了得到输出,我们需要一个返回给定数字平方的函数。该函数如下:

def square(n):
	return n*n

我们要找的平方的项列表如下:

my_list = [2,3,4,5,6,7,8,9]

现在让我们使用 map() python 内置函数来获取 my_list 中每个项目的平方。

最终代码如下:

def square(n):
    return n*n
my_list = [2,3,4,5,6,7,8,9]
updated_list = map(square, my_list)
print(updated_list)
print(list(updated_list))

输出:

<map object at 0x0000002C59601748>
[4, 9, 16, 25, 36, 49, 64, 81]

map() 函数的输出,如输出所示,是一个在屏幕上显示的地图对象,如下所示。

您必须使用 for 循环或使用 list() 方法迭代映射的输出以获取最终输出。我在代码中使用了 list() 来显示给定列表中的值。

因此,使用 map() 函数,我们能够得到每个数字的平方。给定给 map 的列表是 [2,3,4,5,6,7,8,9] ,使用函数 square() 我们得到的 map() 的输出是 [4, 9, 16, 25, 36, 49, 64, 81] 。

函数 map() 将函数 square() 应用于列表中的所有项目。例如,my_list 变量,并使用每个数字的平方来更新列表。输出存储在 updated_list 变量中。

使用 map() Python 内置功能

Python map() 函数是一个内置函数,也可以与其他内置函数一起使用 Python。在本例中,我们将利用 Python round() 内置函数,对给定的值进行四舍五入。

示例:

我拥有的列表是 my_list = [2.6743,3.63526,4.2325,5.9687967,6.3265,7.6988,8.232,9.6907] 。

我需要列表中每个项目的四舍五入值。我们将使用 round() 作为 map() 函数。

my_list = [2.6743,3.63526,4.2325,5.9687967,6.3265,7.6988,8.232,9.6907]
updated_list = map(round, my_list)
print(updated_list)
print(list(updated_list))

输出:

<map object at 0x000000E65F901748>
[3, 4, 4, 6, 6, 8, 8, 10]

round() 函数应用于列表中的所有项目,并返回一个所有值均已四舍五入的列表,如输出所示。

使用 map() 和字符串作为迭代器

我们还可以在字符串上使用 map()。在 Python,字符串就像一个数组,因此我们可以轻松地在 map() 中使用它。

在示例中,我们有一个函数 myMapFunc(),它负责将给定的字符串转换为大写。函数 myMapFunc () 被提供给 map() 函数。map 函数将通过将字符串传递给 myMapFunc() 来负责将给定的字符串转换为大写。

def myMapFunc(s):
    return s.upper()
my_str = "welcome to guru99 tutorials!"
updated_list = map(myMapFunc, my_str)
print(updated_list)
for i in updated_list:
    print(i, end="")

输出:

<map object at 0x000000DF2E711748>
WELCOME TO GURU99 TUTORIALS!

将 map() 与 listof 结合使用 Numbers

要使用 map() 中的列表,将获取一个数字列表并将列表中的每个数字乘以 10。

我们将要使用的列表是:[2,3,4,5,6,7,8,9]。函数 myMapFunc() 负责将给定数字乘以 10。该函数用于与列表一起映射。

示例:

def myMapFunc(n):
    return n*10

my_list = [2,3,4,5,6,7,8,9]

updated_list = map(myMapFunc, my_list)
print(updated_list)
print(list(updated_list))

输出:

<map object at 0x000000EE2C061898>
[20, 30, 40, 50, 60, 70, 80, 90]

我们看到的输出是列表中的每个数字都是

乘以 10。

将 map() 与 Tuple 结合使用

元组是 Python 其项由逗号分隔并用圆括号括起来。在示例中,我们将采用包含字符串值的元组。我们将使用的函数将给定的值转换为大写。

示例:

def myMapFunc(n):
    return n.upper()

my_tuple = ('php','java','python','c++','c')

updated_list = map(myMapFunc, my_tuple)
print(updated_list)
print(list(updated_list))

输出:

<map object at 0x0000009C3C3A16A0>
['PHP', 'JAVA', 'PYTHON', 'C++', 'C']

我们得到的输出是一个元组,其中的所有值都转换为大写。

将 map() 与字典结合使用

A 字典中 Python 使用花括号 ({}) 创建。由于字典是一个迭代器,因此您可以在 map() 函数中使用它。现在让我们在 map() 函数中使用字典作为迭代器。

以下示例展示了 map() 中字典迭代器的工作方式

def myMapFunc(n):
    return n*10
my_dict = {2,3,4,5,6,7,8,9}
finalitems = map(myMapFunc, my_dict)
print(finalitems)
print(list(finalitems))

输出:

<map object at 0x0000007EB451DEF0>
[20, 30, 40, 50, 60, 70, 80, 90]

将 map() 与 Set 结合使用

在设置 Python 是花括号 (()) 中的无序项集合。由于 set() 也是一个迭代器,因此您可以在 map() 函数中使用它。

下面是在 map() 中使用 set 作为迭代器的一个实际示例

def myMapFunc(n):
    return n*10
my_set = {2,3,4,5,6,7,8,9}
finalitems = map(myMapFunc, my_set)
print(finalitems)
print(list(finalitems))

输出:

<map object at 0x000000AC8F05DEF0>
[20, 30, 40, 50, 60, 70, 80, 90]

将 map() 与 Lambda 函数结合使用

In Python,lambda 表达式用于构造匿名函数。您必须使用 lambda 关键字,就像使用 def 定义普通函数一样。

因此,在示例中,我们将在 map() 中使用 lambda 函数。lambda 函数将列表中的每个值乘以 10。

示例:

my_list = [2,3,4,5,6,7,8,9]
updated_list = map(lambda x: x * 10, my_list)
print(updated_list)
print(list(updated_list))

输出:

<map object at 0x000000BD18B11898>
[20, 30, 40, 50, 60, 70, 80, 90]

在 map() 函数中使用多个迭代器

示例 1:将两个列表迭代器传递给 map()

您可以同时向 map() 函数发送多个迭代器(即列表、元组等)。

例如,如果您想添加两个列表。可以使用 map() 函数完成相同的操作。我们将使用两个列表 my_list1 和 my_list2。

在下面的示例中,my_list1 中的第一个项目被添加到 my_list2 的第一个项目中。函数 myMapFunc() 接收 my_list1 和 my_list2 中的项目并返回两者的总和。

以下是使用 map() 函数添加两个给定列表的工作示例。

def myMapFunc(list1, list2):
    return list1+list2

my_list1 = [2,3,4,5,6,7,8,9]
my_list2 = [4,8,12,16,20,24,28]

updated_list = map(myMapFunc, my_list1,my_list2)
print(updated_list)
print(list(updated_list))

输出:

<map object at 0x0000004D5F751860>
[6, 11, 16, 21, 26, 31, 36]

示例 2:将一个 Tuple 和一个列表迭代器传递给 map()

我们将在 map() 函数中使用列表和元组迭代器。该函数用于 map – myMapFunc() 将从列表和元组获取项目。项目将用下划线 (_) 连接。工作示例如下所示:

def myMapFunc(list1, tuple1):
    return list1+"_"+tuple1

my_list = ['a','b', 'b', 'd', 'e']
my_tuple = ('PHP','Java','Python','C++','C')

updated_list = map(myMapFunc, my_list,my_tuple)
print(updated_list)
print(list(updated_list))

输出:

<map object at 0x00000059F37BB4E0>
['a_PHP', 'b_Java', 'b_Python', 'd_C++', 'e_C']

总结

  • Python map() 是一个内置函数,它将函数应用于作为输入给出的迭代器的所有项。例如,迭代器可以是列表、元组、字符串等,它返回一个可迭代的映射对象。
  • map() 函数将对迭代器内的所有项目应用给定的函数,并返回一个可迭代的映射对象,即可组、列表等。
  • Python map() 函数是一个内置函数,也可以与其他内置函数一起使用 Python.
  • 元组是 Python 其项由逗号分隔并用圆括号括起来。示例中将采用包含字符串值的元组。我们将使用的函数将给定的值转换为大写。
  • 一本字典在 Python 使用花括号 ({}) 创建。由于字典是一个迭代器,因此您可以在 map() 函数中使用它。
  • 在设置 Python 是花括号 (()) 中的无序项集合。由于 set() 也是一个迭代器,因此您可以在 map() 函数中使用它。
  • In Python,lambda 表达式(或 lambda 形式)用于构造匿名函数。因此,当您想要在 map() 中使用 lambda 时,必须使用 lambda 关键字。
  • 您可以向 map() 函数发送多个迭代器(即一个列表、一个元组)。