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用fork来创建子进程注意事项
Jul 03 Python
python网络编程之读取网站根目录实例
Sep 30 Python
python web框架学习笔记
May 03 Python
使用python编写简单的小程序编译成exe跑在win10上
Jan 15 Python
python selenium自动上传有赞单号的操作方法
Jul 05 Python
python爬取哈尔滨天气信息
Jul 14 Python
python提取log文件内容并画出图表
Jul 08 Python
Python-接口开发入门解析
Aug 01 Python
在python里使用await关键字来等另外一个协程的实例
May 04 Python
使用Python爬虫爬取小红书完完整整的全过程
Jan 19 Python
Scrapy实现模拟登录的示例代码
Feb 21 Python
在 Python 中利用 Pool 进行多线程
Apr 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
PHP环境搭建最新方法
2006/09/05 PHP
PHP 内存缓存加速功能memcached安装与用法
2009/09/03 PHP
Drupal读取Excel并导入数据库实例
2014/03/02 PHP
使用配置类定义Codeigniter全局变量
2014/06/12 PHP
Laravel 4 初级教程之视图、命名空间、路由
2014/10/30 PHP
php 判断页面或图片是否经过gzip压缩的方法
2017/04/05 PHP
零基础学JavaScript最新动画教程+iso光盘下载
2008/01/22 Javascript
jquery右下角弹出提示框示例代码
2013/10/08 Javascript
一个JavaScript用逗号分割字符串实例
2014/09/22 Javascript
使用jquery动态加载js文件的方法
2014/12/24 Javascript
JS组件Bootstrap Table表格行拖拽效果实现代码
2020/08/27 Javascript
JavaScript必知必会(二) null 和undefined
2016/06/08 Javascript
Vue.js系列之项目搭建(1)
2017/01/03 Javascript
基于vue-cli vue-router搭建底部导航栏移动前端项目
2018/02/28 Javascript
Element-ui自定义table表头、修改列标题样式、添加tooltip、:render-header使用
2019/04/11 Javascript
VUE写一个简单的表格实例
2019/08/06 Javascript
vue通过接口直接下载java生成好的Excel表格案例
2020/10/26 Javascript
微信小程序学习之自定义滚动弹窗
2020/12/20 Javascript
Python使用代理抓取网站图片(多线程)
2014/03/14 Python
Python判断Abundant Number的方法
2015/06/15 Python
举例讲解Python中的死锁、可重入锁和互斥锁
2015/11/05 Python
python 统计一个列表当中的每一个元素出现了多少次的方法
2018/11/14 Python
Python面向对象程序设计示例小结
2019/01/30 Python
python模拟菜刀反弹shell绕过限制【推荐】
2019/06/25 Python
解决pycharm 工具栏Tool中找不到Run manager.py Task的问题
2019/07/01 Python
Python基于pyecharts实现关联图绘制
2020/03/27 Python
python如何遍历指定路径下所有文件(按按照时间区间检索)
2020/09/14 Python
Pycharm 跳转回之前所在页面的操作
2021/02/05 Python
德国亚马逊官方网站:Amazon.de
2020/11/15 全球购物
UDP协议功能
2013/01/06 面试题
销售高级职员求职信
2013/10/29 职场文书
两年的个人工作自我评价
2014/01/10 职场文书
给同学的道歉信
2014/01/16 职场文书
2014年教师思想工作总结
2014/12/03 职场文书
《群青的幻想曲》京力秋树角色PV公开
2022/04/08 日漫
MySQL GTID复制的具体使用
2022/05/20 MySQL