Python内置函数map详解:对可迭代对象应用某个函数
Python中的内置函数map()是一种非常有用的函数。它可以将一个函数应用到可迭代对象的每个元素上,并返回一个新的可迭代对象,其中包含原始对象中每个元素经过函数处理后的结果。
map()函数的基本语法是:
map(function, iterable)
其中,function是一个函数,iterable是一个可迭代对象,如列表、元组、字符串等。
map()函数的工作原理是,它会遍历可迭代对象的每个元素,并将每个元素作为参数传递给函数function。然后,将函数的返回值依次添加到一个新的可迭代对象中,最后返回这个新的可迭代对象。
下面是一个简单的例子,在该例子中,我们定义了一个函数square,它接受一个数字作为参数,并返回该数字的平方:
def square(n):
return n ** 2
numbers = [1, 2, 3, 4, 5]
squared_numbers = map(square, numbers)
print(list(squared_numbers))
输出结果是:
[1, 4, 9, 16, 25]
在这个例子中,我们使用map()函数将函数square应用到列表numbers的每个元素上。map()函数返回一个新的可迭代对象squared_numbers,其中包含每个元素经过函数square处理后的结果。最后,我们将结果转化为列表并打印出来。
需要注意的是,map()函数返回的是一个迭代器对象,而不是列表。如果我们希望获得一个列表,可以通过调用list()函数将迭代器转化为列表。
另外,map()函数还支持多个可迭代对象作为参数。当有多个可迭代对象作为参数时,函数function应接受与可迭代对象个数相同的参数,并依次处理每个可迭代对象中的元素。
下面的例子演示了这一点。在这个例子中,我们定义了一个函数add,它接受两个数字作为参数,并返回它们的和:
def add(x, y):
return x + y
numbers1 = [1, 2, 3, 4, 5]
numbers2 = [10, 20, 30, 40, 50]
sum_numbers = map(add, numbers1, numbers2)
print(list(sum_numbers))
输出结果是:
[11, 22, 33, 44, 55]
在这个例子中,我们使用map()函数将函数add应用到两个列表numbers1和numbers2的对应元素上。map()函数返回一个新的可迭代对象sum_numbers,其中包含每个对应元素经过函数add处理后的结果。
总结一下,map()函数是一个非常有用的函数,它可以将一个函数应用到可迭代对象的每个元素上,并返回一个新的可迭代对象,其中包含原始对象中每个元素经过函数处理后的结果。通过使用map()函数,我们可以简化代码,并提高代码的可读性和可维护性。
