欢迎访问宙启技术站
智能推送

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()函数可以优雅地实现常见的数据操作,例如列表元素求和、转换字符串等等。