python内置函数map详解

map函数的功能作用

python内置函数map的原型是

map(function, iterable, ...)

map函数返回一个将 function 应用于 iterable 中每一项并输出其结果的迭代器,map函数的第一个参数可以是lambda函数也可以是自定一函数,第二个参数是可变参数,可以传入多个可迭代对象。

map函数语法

map(function, iterable, ...)

参数

  • function 函数,可以是lambda函数,也可以是自定义函数
  • iterable 可迭代对象,当有多个可迭代对象时,最短的可迭代对象耗尽则整个迭代就结束。

返回值

迭代器

示例代码

function 参数是lambda函数

lst1 = [1, 2, 3]

lst = map(lambda x: x*2, lst1)
print(lst)

for item in lst:
    print(item)

执行结果

<map object at 0x105664358>
2
4
6

传入多个可迭代对象

lst1 = [1, 2, 3]
lst2 = [4, 5, 6]

lst = map(lambda x, y: x*y, lst1, lst2)
print(lst)

for item in lst:
    print(item)

这段代码里,传入了lst1,lst2两个可迭代对象,在map的内部,会同时遍历他们,从这两个列表里各自取出一个元素作为参数传给lambda函数,最终的效果就是14, 25,3*6, 程序输出结果

<map object at 0x1032f1400>
4
10
18

传入自定义函数

lst1 = [1, 2, 3]
lst2 = [4, 5, 6]

def func(x, y):
    return x*y

lst = map(func, lst1, lst2)
print(lst)

for item in lst:
    print(item)

几乎与上一段代码一模一样,只是用func函数替代了lambda函数,如果处理逻辑较为复杂,那么使用自定义函数是合理的选择,毕竟lambda函数只适合编写简单的逻辑。

扫描关注, 与我技术互动

QQ交流群: 211426309

加入知识星球, 每天收获更多精彩内容

分享日常研究的python技术和遇到的问题及解决方案