当前位置: 首页 > news >正文

python内置函数map()解惑:将可迭代对象中的每个元素放入指定函数处理

python内置函数map解惑:将可迭代对象中的每个元素放入指定函数处理

  • 语法
  • 问题
  • 回答
      • 案例1中
      • 案例2中
      • 其他补充

反思:以前对map的印象就是转下数据类型,现在发现 map()是一个高阶函数,其强大之处在于将“做什么”(函数)与“对谁做”(数据)解耦,通过统一的映射规则处理数据,并返回一个支持惰性求值的迭代器(材料来了才工作的流水线)。

语法

语法:: map(function, iterable, ...)

  • function:我们指定的函数(或数据类型),可以是python内置的,也可以是自定义的。
  • iterable:可迭代的对象,例如列表,元组,字符串等。
  • 返回值:返回一个迭代器对象。一般搭配list()使用,输出列表

问题

我用python做算法笔试,发现输入经常用到map()函数,但我对这个函数一知半解,用起来就非常难受。

回答

和同门讨论了一下,通过两个例子加深一下对map()函数的理解。

# 案例1
# 输入:1 2 3  
data = sys.stdin.readline().split() # ["1", "2", "3"]  
map_object = map(int, data) # map_object相当于一个写着“把data里的每个元素,用int()函数处理一下”的“订单”  
a, b, c = map_object
# 一般可以直接写 a, b, c = map(int, data)# 案例2
list1 = [1,2]  
list2 = [3,5,7]  
result = list(map(lambda x, y: x+y, list1, list2)) # [4, 7]

案例1中

sys.stdin.readline() 读取输入 "1 2 3\n".split() 默认按空格分割字符串,得到列表 ["1", "2", "3"],此时data就是一个可迭代对象。map(int, data) 创建了一个 map 对象,map()的功能是依次取出可迭代对象data中的每一个元素,分别作为int函数的参数进行处理,再依次输出,但此刻没有任何计算发生a, b, c = map_objectmap_object激活,开始从data从取出第一个元素给int函数,再把返回的整数1a,依次处理data中第二个和第三个元素,所以最后a b c分别是整数1 2 3

案例2中

list1list2是两个可迭代对象,lambda x, y: x+y是一个匿名函数,map()的功能是依次取出两个可迭代对象中的元素,第一次取list1[0]list2[0],第二次取list1[1]list2[2],每次取的两个元素作为函数的参数进行处理,再依次输出,第一次lambda函数输出4,第二次lambda函数输出7。后面加了一个list函数,该函数会让map函数开始工作,将两次计算全部完成,result[4, 7]

其他补充

简单说一下这里的匿名函数lambda x, y: x+y,冒号前是函数的形参,冒号后是函数的表达式。

http://www.dtcms.com/a/474019.html

相关文章:

  • 吕口*云蛇吞路的特效*程序系统方案
  • c 网站购物车怎么做.net 网站 源代码
  • 网站建设开发合同模板优秀的商城网站首页设计
  • 服务注册、服务发现、OpenFeign及其OKHttp连接池实现
  • 设计模式篇之 门面模式 Facade
  • 2026年COR SCI2区,自适应K-means和强化学习RL算法+有效疫苗分配问题,深度解析+性能实测,深度解析+性能实测
  • 广州黄浦区建设局网站网站免费模版代码
  • 寄存器技术深度解析:从硬件本质到工程实践
  • **发散创新:探索量化模型的设计与实现**一、引言随着大数据时代的到来,量化模型在金融、医疗、科研等领域的应用越来越广泛。本文将
  • windows查看端口使用情况,以及结束任务释放端口
  • 开源安全管理平台wazuh-与网络入侵检测系统集成增强威胁检测能力
  • 【004】生菜阅读平台
  • 南通网站建设兼职电商平台如何做推广
  • 守护集群与异步备库区别
  • UDP可靠性传输指南:从基础机制到KCP协议核心解析
  • SQL常用函数
  • 义乌建网站引流推广软件
  • Ansible Role修改IP地址与主机名
  • 贺Filcion五周岁:Chain Shop 10月17号正式上线
  • 部分Spark SQL编程要点
  • 【完整源码+数据集+部署教程】 飞机表面缺陷检测系统源码和数据集:改进yolo11-EfficientFormerV2
  • 工作做ppt课件的网站广州抖音seo
  • Java并发编程实战深度解析线程池ThreadPoolExecutor的设计原理与性能优化策略
  • 烟台建设公司网站兰州新区网站建设
  • OpenWrt之ipv6防火墙配置放行局域网设备的公网ipv6
  • 第一个爬虫程序:用 Requests+BeautifulSoup 抓取豆瓣电影 Top250
  • JavaScript 企业面试与学习难度拆解:从0到中高级的阶梯式路线图
  • 北京互联网公司有多少家seo词条
  • 网站项目建设所需成本网站前端建设需要学会什么
  • 拌合站软件开发(25) 替换海康LED屏幕可行性分析及方案