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抓取京东图书评论数据
Aug 31 Python
Python列表计数及插入实例
Dec 17 Python
Python爬虫代理IP池实现方法
Jan 05 Python
详解Python在七牛云平台的应用(一)
Dec 05 Python
Jupyter安装nbextensions,启动提示没有nbextensions库
Apr 23 Python
python特性语法之遍历、公共方法、引用
Aug 08 Python
python中多个装饰器的执行顺序详解
Oct 08 Python
python装饰器原理与用法深入详解
Dec 19 Python
python函数中将变量名转换成字符串实例
May 11 Python
解决python打开https出现certificate verify failed的问题
Sep 03 Python
Django日志及中间件模块应用案例
Sep 10 Python
Python爬虫之爬取最新更新的小说网站
May 06 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
星际争霸 Starcraft 编年史
2020/03/14 星际争霸
PHP中MVC模式的模板引擎开发经验分享
2011/03/23 PHP
深入探讨PHP中的内存管理问题
2011/08/31 PHP
thinkphp验证码的实现(form、ajax实现验证)
2016/07/28 PHP
PHP安装memcache扩展的步骤讲解
2019/02/14 PHP
jquery1.83 之前所有与异步列队相关的模块详细介绍
2012/11/13 Javascript
jquery应该如何来设置改变按钮input的onclick事件
2012/12/10 Javascript
枚举的实现求得1-1000所有出现1的数字并计算出现1的个数
2013/09/10 Javascript
JavaScript头像上传插件源码分享
2016/03/29 Javascript
js中编码函数:escape,encodeURI与encodeURIComponent详解
2017/03/21 Javascript
vue-cli入门之项目结构分析
2017/04/20 Javascript
Vue.js在使用中的一些注意知识点
2017/04/29 Javascript
Vue axios 中提交表单数据(含上传文件)
2017/07/06 Javascript
浅谈webpack+react多页面开发终极架构
2018/11/11 Javascript
node.js微信小程序配置消息推送的实现
2019/02/13 Javascript
Angular7.2.7路由使用初体验
2019/03/01 Javascript
vue自定义js图片碎片轮播图切换效果的实现代码
2019/04/28 Javascript
jQuery Datatables 动态列+跨列合并实现代码
2020/01/30 jQuery
Js图片点击切换轮播实现代码
2020/07/27 Javascript
深入理解javascript中的this
2021/02/08 Javascript
玩转python爬虫之爬取糗事百科段子
2016/02/17 Python
django将图片上传数据库后在前端显式的方法
2018/05/25 Python
命令行运行Python脚本时传入参数的三种方式详解
2019/10/11 Python
python使用openCV遍历文件夹里所有视频文件并保存成图片
2020/01/14 Python
tensorflow安装成功import tensorflow 出现问题
2020/04/16 Python
整理HTML5移动端开发的常用触摸事件
2016/04/15 HTML / CSS
秘鲁购物网站:Linio秘鲁
2017/04/07 全球购物
New Balance法国官方网站:购买鞋子和服装
2019/09/01 全球购物
自我评价正确写法范文
2013/12/10 职场文书
师德演讲稿范文
2014/05/06 职场文书
民族团结先进集体事迹材料
2014/05/22 职场文书
党性心得体会
2014/09/03 职场文书
群众对十八届四中全会的期盼
2014/10/17 职场文书
深入开展党的群众路线教育实践活动心得体会
2014/11/05 职场文书
三方协议书
2015/01/27 职场文书
企业安全生产检查制度
2015/08/06 职场文书