python中map的基本用法示例
作者:lincappu 发布时间:2023-09-24 15:56:26
map()函数
map() 会根据提供的函数对指定序列做映射,是内置函数
第一个参数 function 以参数序列中的每一个元素调用 function 函数,返回包含每次 function 函数返回值的新列表。
语法
map(function, iterable, ...)
map()是 Python 内置的高阶函数,它接收一个函数 f 和一个 list,并通过把函数 f 依次作用在 list 的每个元素上,得到一个新的 list 并返回。
1、当seq只有一个时,将函数func作用于这个seq的每个元素上,并得到一个新的seq。
例如,对于list [1, 2, 3, 4, 5, 6, 7, 8, 9]
如果希望把list的每个元素都作平方,就可以用map()函数:
因此,我们只需要传入函数f(x)=x*x,就可以利用map()函数完成这个计算:
def f(x):
return x*x
print map(f, [1, 2, 3, 4, 5, 6, 7, 8, 9])
输出结果:
[1, 4, 9, 10, 25, 36, 49, 64, 81]
注意:map()函数不改变原有的 list,而是返回一个新的 list。
利用map()函数,可以把一个 list 转换为另一个 list,只需要传入转换函数。
由于list包含的元素可以是任何类型,因此,map() 不仅仅可以处理只包含数值的 list,事实上它可以处理包含任意类型的 list,只要传入的函数f可以处理这种数据类型。
假设用户输入的英文名字不规范,没有按照首字母大写,后续字母小写的规则,请利用map()函数,把一个list(包含若干不规范的英文名字)变成一个包含规范英文名字的list:
输入:['adam', 'LISA', 'barT']
输出:['Adam', 'Lisa', 'Bart']
def format_name(s):
s1=s[0:1].upper()+s[1:].lower();
return s1;
print map(format_name, ['adam', 'LISA', 'barT'])
2、当seq多于一个时,map可以并行(注意是并行)地对每个seq执行如下图所示的过程:
l2=map(lambda x,y:x**y,[1,2,3],[1,2,3])
for i in l2:
print(i)
l3=map(lambda x,y:(x**y,x+y),[1,2,3],[1,2,3])
for i in l3:
print(i)
python3中可以处理类表长度不一致的情况,但无法处理类型不一致的情况,
l4=map(lambda x,y:(x**y,x+y),[1,2,3],[1,2])
for i in l4:
print(i)
l4=map(lambda x,y:(x**y,x+y),[1,2,3],[1,2,'a'])
for i in l4:
print(i)
特殊用法,做类型转换:
l=map(int,'1234')
for i in l:
print(type(i))
print(i)
如果函数是 None,自动假定一个‘identity'函数,这时候就是模仿 zip()函数,
l=[1,2,3]
x=map(None,l)
print(x)
这时候 None 类型不是一个可以调用的对象。所以他没法返回值。
目的是将多个列表相同位置的元素归并到一个元组。如:
>>> print map(None, [2,4,6],[3,2,1])
[(2, 3), (4, 2), (6, 1)]
但是在 python3中,返回是一个迭代器,所以它其实是不可调用的
来源:https://www.cnblogs.com/lincappu/p/8179475.html
猜你喜欢
- 最近项目中的资产的任务状态频频出现问题,查看日志文件,看代码逻辑,也没发现什么具体的错误,总是过段时间就会出现一个表的字段没有更新的问题,很
- 如何自动反馈电子邮件?很多网站上的电子邮件都是自动回复的,就象163电子邮局提供的邮件自动回复功能一样。这是怎么实现的?我们可以用ASPMa
- oracle数据库的权限系统分为系统权限与对象权限。系统权限( database system privilege )可以让用户执行特定的命
- 需求我在最近的一个任务中,存在一个redis高并发计算多个客户端接收预警信息的时长问题。模型是首先模拟多个客户端连接预警服务器集群,然后向预
- 起步Python 提供的多线程模型中并没有提供读写锁,读写锁相对于单纯的互斥锁,适用性更高,可以多个线程同时占用读模式的读写锁,但是只能一个
- 在select语句中可以使用groupby子句将行划分成较小的组,然后,使用聚组函数返回每一个组的汇总信息,另外,可以使用having子句限
- 1. lr_scheduler相关lr_scheduler = WarmupLinearSchedule(optimizer, warmup
- 一、语法while 条件:执行代码while就是当的意思,它指当其后面的条件成立,就执行while下面的代码。例:写一个从0打印到10的程序
- httpparser介绍:1.解析字节类型的http与https请求数据:2.支持已k-v形式修改请求数据:3.支持重新编码请求数据源码im
- 开发环境:python 3.6django 1.11场景一经常有从数据库中获取一批数据,然后在前端以列表的形式展现,比如:获取到所有的用户,
- 一、手指触屏,利用touchstart和touchend计算前后滑动距离,判断是上拉还是下滑。二、js中距离:pageY、clientY、o
- 前言今天呢,笔者想和大家聊聊python+pytest接口自动化中将代码进行封装,只有将测试代码进行封装,才能被测试框架识别执行。例如单个接
- 前言晚上坐在电脑面前,想着一边撸代码,一边听音乐。搜了搜自己想听的歌,奈何好多歌曲都提示需要版权,无法播放!没办法,想听歌还是得靠自己解决!
- 变量不是盒子在示例所示的交互式控制台中,无法使用“变量是盒子”做解释。图说明了在 Python 中为什么不能使用盒子比喻,而便利贴则指出了变
- 继续Mootools常用方法扩展,依然还是String类的扩展。方法:unescapseHTML说明:这个上次忘了,和escapseHTML
- 对win32 COM不是很熟悉,不知道一个程序究竟有多少属性或者方法可以操作。仅仅是一个Sheet页的添加就费了我好长时间,因为这种成功来自
- 1.Python3读取hdf文件最开始使用Python导入pyhdf包的时候是可以的,但是当导入pyhdf.SD的时候就出现了以下问题:我查
- 导航是网页设计的重点,我们在设计一个网站的时候,常常从导航入手,不夸张的说,导航的设计甚至决定了整个网站的风格。这就需要我们平常多留心收集优
- 不管是啥语言都离不开加减乘除这些算法,但是在Python里面你知道这些符号代表什么运算吗?“/”这个是除法运算,那么这个“//”呢?“*”这
- 这一篇笔记将介绍 session 相关的内容,包括如何在系统中使用 session,以及利用 session 实现登录认证的功能。1、ses