服务粉丝

我们一直在努力
当前位置:首页 > 科技 >

map函数的用法python

日期: 来源:python高手养成收集编辑:python高手养成

Python中map函数用来根据提供的函数(通过参数提供)对指定序列做映射。本质上来讲,map函数在Python中是一个迭代器生成函数。本文详解map函数的使用方法。

map函数的语法

map(function, iterable)

参数解释如下:

function:一个函数或方法iterable:一个或多个序列(可迭代对象)函数的作用是:对序列iterable中每一个元素调用function函数,返回一个map对象实例。这个map对象本质上来讲是一个迭代器。

分析源代码如下:

这个类的内部实现了__iter__()、__next__()方法。下面详解其用法:

map函数使用匿名函数作为参数

传入map函数中的参数function可以是一个匿名函数。

print([i for i in map(lambda x: x * 2, [1, 2, 3, 4, 5])])运行结果如下

[2, 4, 6, 8]一般情况下,function最好有名字哦!

map函数的参数为一个简单的函数(该函数只有一个参数)

此时,map函数需要提供一个序列和一个函数。举例如下:

定义一个序列和一个函数

lst = ['a', 2, 'b', 4, 'c', 6, 'd', 8, 'e', 10]def sq(x):# 数值加倍,字符串重复 return x * 2使用map函数,将函数sq作用于序列lst中每一个元素,生成一个map对象。

m = map(sq, lst)打印结果

print(f'map函数返回对象类型:{type(m)}')print(print([i for i in m]))程序运行效果如下:

map函数返回对象类型:<class 'map'>['aa', 4, 'bb', 8, 'cc', 12, 'dd', 16, 'ee', 20]运行效果如图所示:

传入一个多参数的函数效果如何呢?

map函数的参数为一个复杂函数(该函数有2个或以上的参数)

此时,我们根据参数function中参数的位置,依次在map函数中提供相应的序列,序列的个数依function的参数个数而定。

我们定义两个序列:

lst1 = ['a', 'b', 'c', 'd', 'e']lst2 = [1, 2, 3, 4, 5]定义一个两个参数的函数

def sq(x, y):# 数值加倍,字符串重复 return x * y使用map函数

m = map(sq, lst1, lst2)print([i for i in m])运行效果如下:

['a', 'bb', 'ccc', 'dddd', 'eeeee']这个很好理解,函数需要几个参数,这几个参数就需要相应的序列提供。

但是,当提供的这些序列的长度不相等(使用len函数)时,map如何处理呢?

根据示例,当传入map函数中序列长度不等时,程序并不会报错。此时,map函数依据个数最小的序列确定返回的map对象实例的长度。

map函数中,function参数为多个时,参照上述2个参数的机制运行。

好了,map函数的用法就是这样了,小伙伴们掌握了吗?

相关阅读

  • 如何检测时间序列中的异方差(Heteroskedasticity)

  • 来源:Deephub Imba本文约1700字,建议阅读5分钟本文介绍了如何检测时间序列中的异方差。
    时间序列中非恒定方差的检测与处理,如果一个时间序列的方差随时间变化,那么它就是异方差
  • 独家 | 9个可以显著优化代码的Python内置装饰器

  • 翻译:陈之炎
    校对:赵茹萱本文约2000字,建议阅读8分钟本文介绍了精心挑选的9个函数装饰器,它将展示Python的优雅。函数装饰器有事半功倍的力量。Wallhaven 提供 图片“简胜于繁。
  • 使用TensorFlow Probability实现最大似然估计

  • 来源:DeepHub IMBA本文约2400字,建议阅读9分钟本文介绍了最大似然估计的过程,和TensorFlow Probability的实现。TensorFlow Probability是一个构建在TensorFlow之上的Python库
  • 势垒隧穿含时演化的Julia数值模拟

  • 文 | 杜炳毅 徐岩 摘 要:势垒隧穿是初等量子力学中的一个重要模型,但由于求解其波函数涉及超越方程,因此在许多初等量子力学教材中往往着重对透射系数的讲解,很少提及其波函数演

热门文章

  • OPPO k1的低价高配真实么?网友:不看不知道

  • 近日OPPO一款新机OPPO k1,摒弃了高价低配,就连自家老大哥r17都要怼一下。更是放弃了请代言人,以往的OPPO手机还没出来,各路流量小生,花样美男的代言就先来了。还有线下销售人员的
  • 一招教你手机无限制成为一台新设备

  • 大家平时用手机去注册app,肯定会遇到检测设备异常,交易关闭,等问题 这个都是手机已经不止1-2次注册过此app,不断更换手机仅是一个暂时的方法,却不是长久之计,手机总归会用完
  • 从零开始如何开网店

  • 随着互联网的高速发展,人们的生活发生了翻天覆地的变化,生活节奏越来越快,网购已经成为家家户户生活中离不开的一种购物方式了。网购的发展使得越来越多的人想要涉足电商事业,那

最新文章

  • map函数的用法python

  • Python中map函数用来根据提供的函数(通过参数提供)对指定序列做映射。本质上来讲,map函数在Python中是一个迭代器生成函数。本文详解map函数的使用方法。map函数的语法map(func
  • 消防宣平安 欢乐迎元宵

  • 元宵节将至,为做好节日期间消防宣传工作,切实做好家“预”户“消”专项宣传活动,提高广大群众消防安全意识,2月2日,库伦旗消防救援大队“北疆蓝焰”志愿服务队深入三大寺广场开展
  • 名单公示!什邡这些优秀个人和单位拟通报表扬

  • 微妹儿从四川省退役军人事务厅官网获悉,为进一步发挥示范引领作用,激励各级退役军人服务保障机构和干部职工坚定履职、创新开拓,推动我省退役军人服务保障工作高质量发展,经自下
  • 辛店镇南王庄∶民俗表演展风采 欢乐喜庆年味浓

  • 锣鼓敲响迎喜庆,玉兔献瑞闹新春。1月31日上午,“我们的中国梦――文化进万家”叶县新春群众文化艺术节·南王庄民俗文化展演暨乡村振兴品牌产品博览交易会在辛店镇南王庄村启
  • 淄博市12家企业将参加2023“老字号新春购物节”

  • □淄博日报/淄博晚报/博览新闻记者周剑楠2月2日,记者从市商务局获悉,由山东省商务厅主办,山东省老字号企业协会承办,各市商务主管部门协办的2023“老字号新春购物节”,将于2月16