Python中的map()函数及其用法:
发布时间:2023-06-10 13:36:26
Map()函数是Python内置的一个高阶函数,用于将一个函数应用到一个序列或者可迭代对象的每一个元素上,并返回一个新的序列。在这个过程中,传入的函数会被依次遍历每个元素执行,并将其结果保存到新的序列中。
Map()函数的基本用法是:
map(function, iterable, ...)
其中,function是一个函数,iterable是一个序列或者可迭代对象。Map函数将会把function应用到iterable中的每个元素上,生成一个新的可迭代对象。例如:
def square(x):
return x*x
squares = map(square, [1,2,3,4,5])
print(list(squares)) # 输出 [1, 4, 9, 16, 25]
这段代码中,我们定义了一个函数square用于计算一个数的平方,并将其传入到map()函数中,map()函数会将square应用到列表[1,2,3,4,5]的每个元素上,得到一个新的可迭代对象squares。
除了单个序列以外,当传入多个序列时,map()函数会将它们作为参数传递给function,并在每个序列中取出一个元素进行计算:
def add(x, y):
return x + y
results = map(add, [1,2,3,4,5], [10,9,8,7,6])
print(list(results)) # 输出 [11, 11, 11, 11, 11]
这段代码中,我们定义了一个函数add用于计算两个数的和,并将两个列表[1,2,3,4,5]和[10,9,8,7,6]传入到map()函数中。map()函数会从这两个序列中依次取出一个元素进行计算,得到一个新的可迭代对象results。
除了传递函数以外,Python还支持使用lambda表达式作为function参数传递给map()函数:
squares = map(lambda x: x*x, [1,2,3,4,5]) print(list(squares)) # 输出 [1, 4, 9, 16, 25]
这段代码中,我们使用lambda表达式定义了一个函数,该函数与之前定义的square函数的功能相同,用于计算一个数的平方,并将其传入到map()函数中。
总体而言,map()函数可用于对序列和可迭代对象的元素进行迭代处理,该函数支持使用自定义函数和lambda表达式,并返回一个新的可迭代对象。在Python中,map()函数可以优雅地实现常见的数据操作,例如列表元素求和、转换字符串等等。
