python中map的基本用法示例


Posted in Python onSeptember 10, 2018

map()函数

map() 会根据提供的函数对指定序列做映射,是内置函数

第一个参数 function 以参数序列中的每一个元素调用 function 函数,返回包含每次 function 函数返回值的新列表。

语法

map(function, iterable, ...)

map()是 Python 内置的高阶函数,它接收一个函数 f 和一个 list,并通过把函数 f 依次作用在 list 的每个元素上,得到一个新的 list 并返回。

1、当seq只有一个时,将函数func作用于这个seq的每个元素上,并得到一个新的seq。

python中map的基本用法示例

例如,对于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执行如下图所示的过程:

python中map的基本用法示例

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中,返回是一个迭代器,所以它其实是不可调用的

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,如果有疑问大家可以留言交流,谢谢大家对三水点靠木的支持。

Python 相关文章推荐
python获取目录下所有文件的方法
Jun 01 Python
浅谈Python的异常处理
Jun 19 Python
python sys,os,time模块的使用(包括时间格式的各种转换)
Apr 27 Python
python 用lambda函数替换for循环的方法
Jun 09 Python
解决python中使用plot画图,图不显示的问题
Jul 04 Python
python 利用for循环 保存多个图像或者文件的实例
Nov 09 Python
Python 实现数据结构中的的栈队列
May 16 Python
Falsk 与 Django 过滤器的使用与区别详解
Jun 04 Python
解决在pycharm运行代码,调用CMD窗口的命令运行显示乱码问题
Aug 23 Python
使用matlab 判断两个矩阵是否相等的实例
May 11 Python
Python调用百度OCR实现图片文字识别的示例代码
Jul 17 Python
python制作微博图片爬取工具
Jan 16 Python
python2 与 pyhton3的输入语句写法小结
Sep 10 #Python
django DRF图片路径问题的解决方法
Sep 10 #Python
详解python中Numpy的属性与创建矩阵
Sep 10 #Python
tensorflow使用神经网络实现mnist分类
Sep 08 #Python
Python unittest单元测试框架总结
Sep 08 #Python
tensorflow实现加载mnist数据集
Sep 08 #Python
使用tensorflow实现线性回归
Sep 08 #Python
You might like
十天学会php之第三天
2006/10/09 PHP
php对微信支付回调处理的方法
2018/08/23 PHP
PHP SESSION跨页面传递失败解决方案
2020/12/11 PHP
JavaScript 变量基础知识
2009/11/07 Javascript
javascript下arguments,caller,callee,call,apply示例及理解
2009/12/24 Javascript
jQuery 菜单随滚条改为以定位方式(固定要浏览器顶部)
2012/05/24 Javascript
表单元素的submit()方法和onsubmit事件应用概述
2013/02/01 Javascript
JavaScript中的console.group()函数详细介绍
2014/12/29 Javascript
Angularjs过滤器使用详解
2016/05/25 Javascript
Jquery on方法绑定事件后执行多次的解决方法
2016/06/02 Javascript
JS实现根据文件字节数返回文件大小的方法
2016/08/02 Javascript
利用n 升级工具升级Node.js版本及在mac环境下的坑
2017/02/15 Javascript
JS数组搜索之折半搜索实现方法分析
2017/03/27 Javascript
js is_valid_filename验证文件名的函数
2017/07/19 Javascript
es6学习之解构时应该注意的点
2017/08/29 Javascript
nodejs中request库使用HTTPS代理的方法
2019/04/30 NodeJs
JavaScript设计模式之观察者模式与发布订阅模式详解
2020/05/07 Javascript
线程和进程的区别及Python代码实例
2015/02/04 Python
python以环状形式组合排列图片并输出的方法
2015/03/17 Python
详解python string类型 bytes类型 bytearray类型
2017/12/16 Python
Python自定义线程池实现方法分析
2018/02/07 Python
对python使用http、https代理的实例讲解
2018/05/07 Python
python 统计列表中不同元素的数量方法
2018/06/29 Python
解决项目pycharm能运行,在终端却无法运行的问题
2019/01/19 Python
解决springboot yml配置 logging.level 报错问题
2020/02/21 Python
python如何使用代码运行助手
2020/07/03 Python
证券期货行业个人的自我评价
2013/12/26 职场文书
自我评价的写作规则
2014/01/06 职场文书
有趣的广告词
2014/03/18 职场文书
幼儿园六一儿童节主持节目串词
2014/03/21 职场文书
中班开学寄语
2014/04/04 职场文书
最美乡村医生事迹材料
2014/06/02 职场文书
医院搬迁方案
2014/06/14 职场文书
学校党员对照检查材料
2014/08/28 职场文书
员工加薪申请报告
2015/05/15 职场文书
联谊会开场白
2015/06/01 职场文书