what
map是python提供的一个内置函数,用于对一个序列中每个元素,或者对多个序列中对应元素进行操作。
why
函数式编程范式的一种工具,可以代替一些循环操作。同时map操作在小数据100W即1e7的时候操作会比for循环和列表表达式快。
但是当继续增大数据量就会显出劣势,不过在处理小数据时用map还是有一定优势。
具体可以参考这篇博客map为什么比较快
how
map(function, iterable,...)
function
:可以是python自带的函数,也可以是我们定义的函数或者lambda表达式iterable
:可迭代的对象如列表,字典return
:返回一个可迭代的map对象
map使用python内置函数
import os
import numpy as np
res = map(int,["1", "2", "3"])
for item in res:print(item, type(item))
map使用自定义函数
import os
import numpy as np
def d(x):return x * x
res = map(d,[1, 2, 3])
for item in res:print(item, type(item))
map使用lambda表达式
import numpy as np
res = map(lambda x: x * x,[1, 2, 3])
for item in res:print(item, type(item))
map处理多个可迭代对象
import numpy as np
res = map(lambda x, y, z: x + y + z,[1, 2, 3], [1, 2, 3], [1, 2, 3])
for item in res:print(item, type(item))
map返回的类型
import numpy as np
res = map(lambda x, y, z: x + y + z,[1, 2, 3], [1, 2, 3], [1, 2, 3])
print(res, type(res))
可以将map对象转化为list
import numpy as np
res = list(map(lambda x, y, z: x + y + z,[1, 2, 3], [1, 2, 3], [1, 2, 3]))
print(res, type(res))