python中map()与zip()操作方法


Posted in Python onFebruary 27, 2016

对于map()它的原型是:map(function,sequence),就是对序列sequence中每个元素都执行函数function操作。
比如之前的a,b,c = map(int,raw_input().split()),意思就是说把输入的a,b,c转化为整数。再比如:

a = ['1','2','3','4']
print map(list,a)
print map(int,a)

第一个map是把列表a中每个元素转化为列表,第二个map是把a中每个元素转化为整数。
而对于zip(),原型是zip(*list),list是一个列表,zip(*list)返回的是一个元组,比如:

list = [[1,2,3],[4,5,6],[7,8,9]]
t = zip(*list)
print t

输出:[(1, 4, 7), (2, 5, 8), (3, 6, 9)]

x = [1,2,3,4,5]
y = [6,7,8,9,10]
a = zip(x,y)
print a

输出:[(1, 6), (2, 7), (3, 8), (4, 9), (5, 10)]

下面是一些补充:

[python] 
>>> list = [[0,1,2],[3,1,4]] 
>>> [sum(x) for x in list] 
[3, 8] 
>>> map(sum,list) 
[3, 8]

如果要得到每列之和,需要用zip(*list)先unzip list,得到一个元组list,其中第i个元组包含了每行的第i个元素:

[python] 
>>> list = [[0,1,2],[3,1,4]] 
>>> zip(*list) 
[(0, 3), (1, 1), (2, 4)] 
>>> [sum(x) for x in zip(*list)] 
[3, 2, 6] 
>>> map(sum,zip(*list)) 
[3, 2, 6]

下面的例子是关于zip和unzip(其实是zip和*一起用)如何work的:

[python] 
>>> x=[1,2,3] 
>>> y=[4,5,6] 
>>> zipped = zip(x,y) 
>>> zipped 
[(1, 4), (2, 5), (3, 6)] 
>>> x2,y2=zip(*zipped) 
>>> x2 
(1, 2, 3) 
>>> y2 
(4, 5, 6) 
>>> x3,y3=map(list,zip(*zipped)) 
>>> x3 
[1, 2, 3] 
>>> y3 
[4, 5, 6]
Python 相关文章推荐
跟老齐学Python之从if开始语句的征程
Sep 14 Python
使用Python的Tornado框架实现一个一对一聊天的程序
Apr 25 Python
详解Django框架中用context来解析模板的方法
Jul 20 Python
Python类的继承和多态代码详解
Dec 27 Python
Python进度条实时显示处理进度的示例代码
Jan 30 Python
基于pandas数据样本行列选取的方法
Apr 20 Python
python实现傅里叶级数展开的实现
Jul 21 Python
基于python-pptx库中文文档及使用详解
Feb 14 Python
用 python 进行微信好友信息分析
Nov 28 Python
教你如何用python开发一款数字推盘小游戏
Apr 14 Python
python爬取某网站原图作为壁纸
Jun 02 Python
Python爬虫中urllib3与urllib的区别是什么
Jul 21 Python
python中input()与raw_input()的区别分析
Feb 27 #Python
python PIL模块与随机生成中文验证码
Feb 27 #Python
Pythont特殊语法filter,map,reduce,apply使用方法
Feb 27 #Python
python 网络爬虫初级实现代码
Feb 27 #Python
Python数据库的连接实现方法与注意事项
Feb 27 #Python
学习python之编写简单简单连接数据库并执行查询操作
Feb 27 #Python
学习python之编写简单乘法口诀表实现代码
Feb 27 #Python
You might like
PHP 查找字符串常用函数介绍
2012/06/07 PHP
Linux下PHP加速器APC的安装与配置笔记
2014/10/24 PHP
php抽象类用法实例分析
2015/07/07 PHP
PHP异常类及异常处理操作实例详解
2018/12/19 PHP
PHP+Ajax简单get验证操作示例
2019/03/02 PHP
静态的动态续篇之来点XML
2006/12/23 Javascript
jQuery 剧场版 你必须知道的javascript
2009/05/27 Javascript
jquery里的正则表达式说明
2011/08/03 Javascript
基于jquery的代码显示区域自动拉长效果
2011/12/07 Javascript
利用a标签自动解析URL分析网址实例
2014/10/20 Javascript
JQuery boxy插件在IE中边角图片不显示问题的解决
2015/05/20 Javascript
jQuery树形下拉菜单特效代码分享
2015/08/15 Javascript
js动态生成Html元素实现Post操作(createElement)
2015/09/14 Javascript
JS数组合并push与concat区别分析
2015/12/17 Javascript
js css实现垂直方向自适应的三角提示菜单
2016/06/26 Javascript
微信小程序  网络请求API详解
2016/10/25 Javascript
Angular.js组件之input mask对input输入进行格式化详解
2017/07/10 Javascript
JavaScript数组去重的多种方法(四种)
2017/09/19 Javascript
node 利用进程通信实现Cluster共享内存
2017/10/27 Javascript
使用vue打包进行云服务器上传的问题
2020/03/02 Javascript
基于p5.js 2D图像接口的扩展(交互实现)
2020/11/30 Javascript
详解Python中的__getitem__方法与slice对象的切片操作
2016/06/27 Python
Python网络编程详解
2017/10/31 Python
Django中使用CORS实现跨域请求过程解析
2019/08/05 Python
python matplotlib imshow热图坐标替换/映射实例
2020/03/14 Python
python自动下载图片的方法示例
2020/03/25 Python
Python使用20行代码实现微信聊天机器人
2020/06/05 Python
Python实现定时监测网站运行状态的示例代码
2020/09/30 Python
世界闻名的衬衫制造商:Savile Row Company
2018/07/30 全球购物
营销人才自我鉴定范文
2013/12/25 职场文书
法务专员岗位职责
2014/01/02 职场文书
校园摄影活动策划方案
2014/02/05 职场文书
《池塘边的叫声》教学反思
2014/04/12 职场文书
2014年合同管理工作总结
2014/12/02 职场文书
js实现上传图片到服务器
2021/04/11 Javascript
MySQL 发生同步延迟时Seconds_Behind_Master还为0的原因
2021/06/21 MySQL