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 Django使用forms来实现评论功能
Aug 17 Python
python里使用正则的findall函数的实例详解
Oct 19 Python
python3.5+tesseract+adb实现西瓜视频或头脑王者辅助答题
Jan 17 Python
python实现windows壁纸定期更换功能
Jan 21 Python
python实现二维数组的对角线遍历
Mar 02 Python
如何基于Python实现自动扫雷
Jan 06 Python
flask框架url与重定向操作实例详解
Jan 25 Python
python GUI库图形界面开发之PyQt5信号与槽的高级使用技巧装饰器信号与槽详细使用方法与实例
Mar 06 Python
Django 实现将图片转为Base64,然后使用json传输
Mar 27 Python
Spark处理数据排序问题如何避免OOM
May 21 Python
keras中的卷积层&池化层的用法
May 22 Python
PyQt QMainWindow的使用示例
Mar 24 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
实战mysql导出中文乱码及phpmyadmin导入中文乱码的解决方法
2010/06/11 PHP
ThinkPHP控制器间实现相互调用的方法
2014/10/31 PHP
php实现格式化多行文本为Js可用格式
2015/04/15 PHP
PHP判断上传文件类型的解决办法
2015/10/20 PHP
php获取POST数据的三种方法实例详解
2016/12/20 PHP
DOM2非标准但却支持很好的几个属性小结
2012/01/21 Javascript
关于jQuery $.isNumeric vs. $.isNaN vs. isNaN
2013/04/15 Javascript
JavaScript调用客户端Java程序的方法
2015/07/27 Javascript
基于JavaScript实现移动端无限加载分页
2017/03/27 Javascript
vue2.0中vue-cli实现全选、单选计算总价格的实例代码
2017/07/18 Javascript
jQuery实现的电子时钟效果完整示例
2018/04/28 jQuery
JavaScript引用类型RegExp基本用法详解
2018/08/09 Javascript
vue 对象添加或删除成员时无法实时更新的解决方法
2019/05/01 Javascript
详解vue-cli3多页应用改造
2019/06/04 Javascript
vue-cli+iview项目打包上线之后图标不显示问题及解决方法
2019/10/16 Javascript
js实现简易计算器功能
2019/10/18 Javascript
vue计算属性无法监听到数组内部变化的解决方案
2019/11/06 Javascript
vue项目中锚点定位替代方式
2019/11/13 Javascript
ES6如何用一句代码实现函数的柯里化
2020/01/18 Javascript
[59:42]Secret vs Alliacne 2019国际邀请赛小组赛 BO2 第一场 8.15
2019/08/17 DOTA
[01:33:30]DOTA2-DPC中国联赛 正赛 RNG vs Phoenix BO3 第二场 2月5日
2021/03/11 DOTA
python使用fork实现守护进程的方法
2017/11/16 Python
DRF跨域后端解决之django-cors-headers的使用
2019/01/27 Python
python语言基本语句用法总结
2019/06/11 Python
python selenium爬取斗鱼所有直播房间信息过程详解
2019/08/09 Python
基于pytorch 预训练的词向量用法详解
2020/01/06 Python
Python面向对象特殊属性及方法解析
2020/09/16 Python
如何将Pycharm中调整字体大小的方式设置为"ctrl+鼠标滚轮上下滑"
2020/11/17 Python
CSS3 制作绽放的莲花采用效果叠加实现
2013/01/31 HTML / CSS
顶岗实习计划书
2014/01/10 职场文书
致标枪运动员加油稿
2014/02/15 职场文书
《桃花心木》教学反思
2014/02/17 职场文书
镇人大副主席民主生活会对照检查材料思想汇报
2014/10/01 职场文书
Python生成九宫格图片的示例代码
2021/04/14 Python
python中%格式表达式实例用法
2021/06/18 Python