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操作MongoDB基础知识
Nov 01 Python
Python的字典和列表的使用中一些需要注意的地方
Apr 24 Python
python杀死一个线程的方法
Sep 06 Python
Python的Django框架中消息通知的计数器实现教程
Jun 13 Python
Python简单的制作图片验证码实例
May 31 Python
python3调用R的示例代码
Feb 23 Python
python文件选择对话框的操作方法
Jun 27 Python
pycharm编写spark程序,导入pyspark包的3中实现方法
Aug 02 Python
python DataFrame转dict字典过程详解
Dec 26 Python
python批量修改xml属性的实现方式
Mar 05 Python
python suds访问webservice服务实现
Jun 26 Python
python中Pexpect的工作流程实例讲解
Mar 02 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正确解析UTF-8字符串技巧应用
2012/11/07 PHP
微信公众平台开发关注及取消关注事件的方法
2014/12/23 PHP
php实现对象克隆的方法
2015/06/20 PHP
编写PHP脚本过滤用户上传的图片
2015/07/03 PHP
php的4种常用运行方式详解
2016/12/22 PHP
PHP遍历目录文件的常用方法小结
2017/02/03 PHP
Laravel中的Blade模板引擎示例详解
2017/10/10 PHP
用Laravel轻松处理千万级数据的方法实现
2020/12/25 PHP
PHP7 新增常量
2021/03/09 PHP
jquery text,radio,checkbox,select操作实现代码
2009/07/09 Javascript
JS和函数式语言的三特性
2014/03/05 Javascript
超棒的响应式布局jQuery插件Freetile.js
2014/11/17 Javascript
jquery实现顶部向右伸缩的导航区域代码
2015/09/02 Javascript
JavaScript测试工具之Karma-Jasmine的安装和使用详解
2015/12/03 Javascript
picLazyLoad 实现图片延时加载(包含背景图片)
2016/07/21 Javascript
JavaScript实现经典排序算法之插入排序
2016/12/28 Javascript
vue动画之点击按钮往上渐渐显示出来的实例
2018/09/29 Javascript
微信上传视频文件提示(推荐)
2018/11/22 Javascript
JS实现带阴历的日历功能详解
2019/01/24 Javascript
vue中axios封装使用的完整教程
2021/03/03 Vue.js
python操作mongodb根据_id查询数据的实现方法
2015/05/20 Python
Python获取央视节目单的实现代码
2015/07/25 Python
python opencv实现旋转矩形框裁减功能
2018/07/25 Python
selenium 安装与chromedriver安装的方法步骤
2019/06/12 Python
python多进程 主进程和子进程间共享和不共享全局变量实例
2020/04/25 Python
Django解决frame拒绝问题的方法
2020/12/18 Python
CSS3实现的闪烁跳跃进度条示例(附源码)
2013/08/19 HTML / CSS
Html5 audio标签样式的修改
2016/01/28 HTML / CSS
Brookstone美国官网:独特新奇产品
2017/03/04 全球购物
平面网站制作专科生的自我评价分享
2013/12/11 职场文书
2014院党委领导班子及其成员群众路线对照检查材料思想汇报
2014/10/04 职场文书
党员干部反四风民主生活会对照检查材料思想汇报
2014/10/12 职场文书
幼儿园安全工作总结2015
2015/04/20 职场文书
撤回我也能看到!教你用Python制作微信防撤回脚本
2021/06/11 Python
Apache Hudi集成Spark SQL操作hide表
2022/03/31 Servers
VUE使用draggable实现组件拖拽
2022/04/06 Vue.js