赞
赏
Python 中的 map() 函数是一个内置的高阶 函数,map 函数会根据传入的函数对指定序列做映射。
map(function, iterable, ...)
参数 | 描述 |
---|---|
function | 我们需要传入的函数,这个函数可以是内置的,也可以是自己定义,或者是 匿名函数。 |
iterable | 一个可迭代对象,如 列表,字符串,元祖,字典 等等。 |
返回的是一个 map 对象,注意不是列表不能直接输出,可以通过 for 循环 或者 list() 来显示。
Python map 函数可以传入内置函数
print("嗨客网(www.haicoder.net)")
map_abs = map(abs, [1, -2, -3])
for val in map_abs:
print("map_abs =", val)
程序运行后,控制台输出如下:
我们使用 map 函数,第一个参数传入了内置的 abs 函数,第二个参数传入了一个列表,列表中有三个元素。
最后,我们使用 变量 map_abs 来接受 map 函数对列表每个元素处理后的返回值,我们发现,输出了我们传入的列表的每个元素的绝对值。
即,我们通过 map 函数上实现了求传入的 list 的每个元素的绝对值,并返回一个新的 list 的功能。
Python map 函数可以传入自定义函数
print("嗨客网(www.haicoder.net)")
def cube(x):
return x*x*x
map_cube = map(cube, [1, 2, 3])
for val in map_cube:
print("map_cube =", val)
程序运行后,控制台输出如下:
我们使用 map 函数,第一个参数传入了我们自定义的 cube 函数,该函数实现的功能就是求我们传入的参数的立方,第二个参数传入了一个列表,列表中有三个元素。
最后,我们发现,我们实现了求传入的列表的每个元素的立方的功能。
Python map 函数可以使用 lambda 表达式
print("嗨客网(www.haicoder.net)")
map_vals = map(lambda x, y: x + y, [1, 3, 5, 7, 9], [2, 4, 6, 8, 10])
for val in map_vals:
print("map_val =", val)
程序运行后,控制台输出如下:
我们使用 map 函数加上 lambda 表达式实现了求我们传入的两个列表的每一项相加的结果。
Python 中的 map() 函数是一个内置的高阶函数,map 函数会根据传入的函数对指定序列做映射。Python map 函数语法:
map(function, iterable, ...)