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获取文件ssdeep值的方法
Oct 05 Python
Python面向对象特殊成员
Apr 24 Python
Python将多个excel文件合并为一个文件
Jan 03 Python
Django后台获取前端post上传的文件方法
May 28 Python
浅析python中numpy包中的argsort函数的使用
Aug 30 Python
python:接口间数据传递与调用方法
Dec 17 Python
利用python-pypcap抓取带VLAN标签的数据包方法
Jul 23 Python
使用pyhon绘图比较两个手机屏幕大小(实例代码)
Jan 03 Python
python实现查找所有程序的安装信息
Feb 18 Python
python GUI库图形界面开发之PyQt5滑块条控件QSlider详细使用方法与实例
Feb 28 Python
通过Python扫描代码关键字并进行预警的实现方法
May 24 Python
安装Anaconda3及使用Jupyter的方法
Oct 27 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实现通过ftp上传文件
2015/06/19 PHP
php socket通信简单实现
2016/11/18 PHP
Referer原理与图片防盗链实现方法详解
2019/07/03 PHP
动手学习无线电
2021/03/10 无线电
javaScript对象和属性的创建方法
2007/01/15 Javascript
一个轻量级的javascript库 pj介绍
2010/12/19 Javascript
jQuery(1.6.3) 中css方法对浮动的实现缺陷分析
2011/09/09 Javascript
关于递归运算的顺序测试代码
2011/11/30 Javascript
AngularJS基础知识
2014/12/21 Javascript
javascript实现倒计时并弹窗提示特效
2015/06/05 Javascript
如何消除inline-block属性带来的标签间间隙
2016/03/31 Javascript
分享两段简单的JS代码防止SQL注入
2016/04/12 Javascript
使用jquery获取url以及jquery获取url参数的实现方法
2016/05/25 Javascript
js css+html实现简单的日历
2016/07/14 Javascript
JavaScript实现256色转灰度图
2017/02/22 Javascript
ES6中Proxy代理用法实例浅析
2017/04/06 Javascript
Vue中父组件向子组件通信的方法
2017/07/11 Javascript
关于vue.js组件数据流的问题
2017/07/26 Javascript
通过 JS 判断页面是否有滚动条的实现方法
2018/04/05 Javascript
JavaScript循环遍历你会用哪些之小结篇
2018/09/28 Javascript
JavaScript设计模式之享元模式实例详解
2019/01/17 Javascript
Vue使用localStorage存储数据的方法
2019/05/27 Javascript
详解template标签用法(含vue中的用法总结)
2021/01/12 Vue.js
[01:46]TI4西雅图DOTA2前线报道 中国选手抱团调时差
2014/07/08 DOTA
[03:57]《不朽》——2015DOTA2国际邀请赛—中国军团出征主题曲MV
2015/07/15 DOTA
wxpython学习笔记(推荐查看)
2014/06/09 Python
python自动翻译实现方法
2016/05/28 Python
Python自定义线程类简单示例
2018/03/23 Python
python3编写ThinkPHP命令执行Getshell的方法
2019/02/26 Python
Python基本类型的连接组合和互相转换方式(13种)
2019/12/16 Python
关于HTML5你必须知道的28个新特性,新技巧以及新技术
2012/05/28 HTML / CSS
工程造价专业大专生求职信
2013/10/06 职场文书
2015年感恩节演讲稿(优选篇)
2015/03/20 职场文书
2015年信息化建设工作总结
2015/07/23 职场文书
2016年庆祝六一儿童节活动总结
2016/04/06 职场文书
Go获取两个时区的时间差
2022/04/20 Golang