python中二维阵列的变换实例


Posted in Python onOctober 09, 2014

本文实例讲述了python中二维阵列的变换方法。分享给大家供大家参考。具体方法如下:

先看如下代码:

arr = [ [1, 2, 3], [4, 5, 6], [7, 8,9], [10, 11, 12]] 
 
print map(list, zip(*arr)) 
print '_-------------------------------------------------' 
print [[r[col] for r in arr] for col in range(len(arr[0]))]

运行结果如下:

[[1, 4, 7, 10], [2, 5, 8, 11], [3, 6, 9, 12]]
_-------------------------------------------------
[[1, 4, 7, 10], [2, 5, 8, 11], [3, 6, 9, 12]]

这里解释一下:

1. 第一种方法:map(list, zip(*arr))
zip([iterable, ...])
This function returns a list of tuples, where the i-th tuple contains thei-th element from each of the argument sequences or iterables.
zip()

这个函数返回一个元组的列表,其中的第i个元组包含从参数传进来的队列的每一个参数的元素的的第I个元素

再举个例子说明一下吧:

>>> x = [1, 2, 3]
>>> y = [4, 5, 6]
>>> zipped = zip(x, y)
>>> zipped
[(1, 4), (2, 5), (3, 6)]

实际上zip(*arr)返回的就是[(1, 4, 7, 10), (2, 5, 8, 11), (3, 6, 9, 12)],只不过它的每个元素是元组

map(func, list):

对list中的每个元素调用func方法,返回列表
参数*arr 是python用于传递任意基于位置的参数的语法

2. 第二种方法: [[r[col] for r in arr] for col in range(len(arr[0]))]
内层推导改变的是(从行中)选出的元素, 外层推导则影响了选择子(即列)

希望本文所述对大家的Python程序设计有所帮助。

Python 相关文章推荐
Python里隐藏的“禅”
Jun 16 Python
Python脚本实现网卡流量监控
Feb 14 Python
在Python上基于Markov链生成伪随机文本的教程
Apr 17 Python
python Django批量导入数据
Mar 25 Python
Python中关于Sequence切片的下标问题详解
Jun 15 Python
python多线程socket编程之多客户端接入
Sep 12 Python
Python中pygal绘制雷达图代码分享
Dec 07 Python
Flask框架信号用法实例分析
Jul 24 Python
Python中浅拷贝copy与深拷贝deepcopy的简单理解
Oct 26 Python
Python文件如何引入?详解引入Python文件步骤
Dec 10 Python
Django项目使用CircleCI的方法示例
Jul 14 Python
django前端页面下拉选择框默认值设置方式
Aug 09 Python
python实现每次处理一个字符的三种方法
Oct 09 #Python
Python正则表达式匹配ip地址实例
Oct 09 #Python
Python数据结构之Array用法实例
Oct 09 #Python
python中pygame模块用法实例
Oct 09 #Python
python根据文件大小打log日志
Oct 09 #Python
python命令行参数解析OptionParser类用法实例
Oct 09 #Python
python测试驱动开发实例
Oct 08 #Python
You might like
PHP4引用文件语句的对比
2006/10/09 PHP
经典的PHPer为什么被认为是草根?
2007/04/02 PHP
php 接口类与抽象类的实际作用
2009/11/26 PHP
php获取远程图片的两种 CURL方式和sockets方式获取远程图片
2011/11/07 PHP
CodeIgniter基本配置详细介绍
2013/11/12 PHP
ThinkPHP路由详解
2015/07/27 PHP
使用Yii2实现主从数据库设置
2016/11/20 PHP
插件:检测javascript的内存泄漏
2007/03/04 Javascript
文本框回车提交与禁止提交示例
2013/09/27 Javascript
JS+DIV实现鼠标划过切换层效果的实例代码
2013/11/26 Javascript
使用JS实现jQuery的addClass, removeClass, hasClass函数功能
2014/10/31 Javascript
小米公司JavaScript面试题
2014/12/29 Javascript
javascript中定义类的方法详解
2015/02/10 Javascript
js字符串操作方法实例分析
2015/05/06 Javascript
jQuery为动态生成的select元素添加事件的方法
2016/08/29 Javascript
jQuery实现的自动加载页面功能示例
2016/09/04 Javascript
微信小程序 后台https域名绑定和免费的https证书申请详解
2016/11/10 Javascript
Bootstrap模态框使用详解
2017/02/15 Javascript
Node.js命令行/批处理中如何更改Linux用户密码浅析
2018/07/22 Javascript
JQuery中queue方法用法示例
2019/01/31 jQuery
NodeJs 实现简单WebSocket即时通讯的示例代码
2019/08/05 NodeJs
浅谈如何优雅处理JavaScript异步错误
2019/11/12 Javascript
Node.js web 应用如何封装到Docker容器中
2020/09/01 Javascript
python统计字符串中指定字符出现次数的方法
2015/04/04 Python
简单理解Python中的装饰器
2015/07/31 Python
浅析Python中的赋值和深浅拷贝
2017/08/15 Python
详解利用python+opencv识别图片中的圆形(霍夫变换)
2019/07/01 Python
Java文件与类动手动脑实例详解
2019/11/10 Python
如何使用python socket模块实现简单的文件下载
2020/09/04 Python
英国天然宝石首饰购买网站:Gemondo Jewellery
2018/10/23 全球购物
西班牙语在线票务市场:SuperBoletería
2019/06/10 全球购物
历史专业个人求职信范文
2013/12/07 职场文书
公司晚会策划方案
2014/05/17 职场文书
长城导游词300字
2015/01/30 职场文书
安全教育第一课观后感
2015/06/17 职场文书
《跨越海峡的生命桥》教学反思
2016/02/18 职场文书