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格式化压缩后的JS文件的方法
Mar 05 Python
解决python升级引起的pip执行错误的问题
Jun 12 Python
python给微信好友定时推送消息的示例
Feb 20 Python
Python中的十大图像处理工具(小结)
Jun 10 Python
pyqt5与matplotlib的完美结合实例
Jun 21 Python
Python使用pymysql模块操作mysql增删改查实例分析
Dec 19 Python
Python函数默认参数常见问题及解决方案
Mar 26 Python
在matplotlib中改变figure的布局和大小实例
Apr 23 Python
解决Keras的自定义lambda层去reshape张量时model保存出错问题
Jul 01 Python
python实现从ftp上下载文件的实例方法
Jul 19 Python
利用Python将多张图片合成视频的实现
Nov 23 Python
如何利用python和DOS获取wifi密码
Mar 31 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
自己动手,丰衣足食 - 短波框形天线制作
2021/03/01 无线电
PHP编程中字符串处理的5个技巧小结
2007/11/13 PHP
php microtime获取浮点的时间戳
2010/02/21 PHP
PHP 自定义错误处理函数的使用详解
2013/05/10 PHP
PHP自动生成表单代码分享
2015/06/19 PHP
php+mysql查询实现无限下级分类树输出示例
2016/10/03 PHP
PHP实现一个轻量级容器的方法
2019/01/28 PHP
PHP convert_cyr_string()函数讲解
2019/02/13 PHP
JavaScript 动态改变图片大小
2009/06/11 Javascript
js 实现无干扰阴影效果 简单好用(附文件下载)
2009/12/27 Javascript
js focus不起作用的解决方法(主要是因为dom元素是否加载完成)
2010/11/05 Javascript
jquery判断浏览器类型的代码
2012/11/05 Javascript
extjs4 treepanel动态改变行高度示例
2013/12/17 Javascript
使用js如何实现全选与全不选
2013/12/30 Javascript
JavaScript中Number.NEGATIVE_INFINITY值的使用详解
2015/06/05 Javascript
jQuery实现区域打印功能代码详解
2016/06/17 Javascript
微信小程序 ecshop地址三级联动实现实例代码
2017/02/28 Javascript
vue 自定义 select内置组件
2018/04/10 Javascript
vue头部导航动态点击处理方法
2018/11/02 Javascript
[01:39:04]DOTA2-DPC中国联赛 正赛 SAG vs CDEC BO3 第二场 2月1日
2021/03/11 DOTA
Python设置在shell脚本中自动补全功能的方法
2018/06/25 Python
实时获取Python的print输出流方法
2019/01/07 Python
Python+OpenCV采集本地摄像头的视频
2019/04/25 Python
django中间键重定向实例方法
2019/11/10 Python
Python函数基本使用原理详解
2020/03/19 Python
django rest framework使用django-filter用法
2020/07/15 Python
详解Sticky Footer 绝对底部的两种套路
2017/11/03 HTML / CSS
共产党员承诺书
2014/03/25 职场文书
新春寄语大全
2014/04/09 职场文书
学习经验演讲稿
2014/05/10 职场文书
学校志愿者活动总结
2014/06/27 职场文书
缓刑人员思想汇报500字
2014/09/12 职场文书
党的群众路线教育实践活动剖析材料
2014/09/30 职场文书
导游词之秦皇岛燕塞湖
2020/01/03 职场文书
AJAX学习笔记
2021/05/18 Javascript
nginx之内存池的实现
2022/06/28 Servers