Python内置的map()函数映射函数到序列中的每个元素
发布时间:2023-11-05 05:24:53
Python内置的map()函数是一个高阶函数,它接受一个函数和一个可迭代对象(如列表、字符串等)作为参数,然后将这个函数应用到可迭代对象的每个元素上,并返回一个新的可迭代对象,该对象包含了应用函数后的结果。
用法:
map(func, iterable)
其中,func是一个函数对象,iterable是一个可迭代对象,可以是列表、元组、字符串等。
实际上,map()函数的返回值是一个迭代器,可以通过list()函数将其转换为列表。
举个例子来说明map()函数的用法:
# 定义一个函数,将输入的数字加倍
def multiply_by_2(num):
return num * 2
# 定义一个列表
nums = [1, 2, 3, 4, 5]
# 使用map()函数将multiply_by_2函数应用到nums列表的每个元素上,并得到一个新的迭代器
result = map(multiply_by_2, nums)
# 将迭代器转换为列表
result_list = list(result)
print(result_list)
# 输出:[2, 4, 6, 8, 10]
在这个例子中,我们定义了一个函数multiply_by_2(),该函数接受一个数字作为输入,并将其乘以2。然后我们定义了一个列表nums,其中包含了一些数字。使用map()函数,我们将multiply_by_2()函数应用到nums列表的每个元素上,并得到一个新的迭代器result。最后,我们通过将result转换为列表result_list,将结果打印出来。
map()函数还可以接受多个可迭代对象作为参数,此时,被映射函数必须接受与可迭代对象数量相等的参数,例如:
# 定义两个列表 nums1 = [1, 2, 3] nums2 = [4, 5, 6] # 使用map()函数将两个列表对应位置的数字相加 result = map(lambda x, y: x + y, nums1, nums2) # 将迭代器转换为列表 result_list = list(result) print(result_list) # 输出:[5, 7, 9]
在这个例子中,我们使用map()函数将两个列表nums1和nums2对应位置的数字相加,得到一个新的迭代器result。最后,我们将result转换为列表result_list,并打印出结果。
总结来说,map()函数是Python内置的一个非常有用的函数,可以将一个函数应用到一个或多个可迭代对象的每个元素上,提供了一种简洁的方式来对序列进行映射操作。
