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调用短信猫控件实现发短信功能实例
Jul 04 Python
在Python中使用第三方模块的教程
Apr 27 Python
利用Python抓取行政区划码的方法
Nov 28 Python
python和ruby,我选谁?
Sep 13 Python
python实现自动登录
Sep 17 Python
Python3 log10()函数简单用法
Feb 19 Python
Pycharm 2020年最新激活码(亲测有效)
Sep 18 Python
Tensorflow tf.dynamic_partition矩阵拆分示例(Python3)
Feb 07 Python
python2 对excel表格操作完整示例
Feb 23 Python
python GUI库图形界面开发之PyQt5复选框控件QCheckBox详细使用方法与实例
Feb 28 Python
关于keras中keras.layers.merge的用法说明
May 23 Python
python 使用Tensorflow训练BP神经网络实现鸢尾花分类
May 12 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
php cli模式学习(PHP命令行模式)
2013/06/03 PHP
解析php通过cookies获取远程网页的指定代码
2013/06/25 PHP
PHP 生成微信红包代码简单
2016/03/25 PHP
PHP之十六个魔术方法详细介绍
2016/11/01 PHP
PHP程序员简单的开展服务治理架构操作详解(一)
2020/05/14 PHP
Gambit vs CL BO3 第一场 2.13
2021/03/10 DOTA
JQuery AJAX实现目录浏览与编辑的代码
2008/10/21 Javascript
使用按钮控制以何种方式打开新窗口的属性介绍
2012/12/17 Javascript
在Firefox下js select标签点击无法弹出
2014/03/06 Javascript
jQuery中数据缓存$.data的用法及源码完全解析
2016/04/29 Javascript
jQuery多文件异步上传带进度条实例代码
2016/08/16 Javascript
探索Vue高阶组件的使用
2018/01/08 Javascript
NodeJS 中Stream 的基本使用
2018/07/30 NodeJs
vue项目中在外部js文件中直接调用vue实例的方法比如说this
2019/04/28 Javascript
在vue中动态添加class类进行显示隐藏实例
2019/11/09 Javascript
CKEditor扩展插件:自动排版功能autoformat插件实现方法详解
2020/02/06 Javascript
uniapp,微信小程序中使用 MQTT的问题
2020/07/11 Javascript
Javascript var变量删除原理及实现
2020/08/26 Javascript
详解python的webrtc库实现语音端点检测
2017/05/31 Python
Python实现PS图像调整之对比度调整功能示例
2018/01/26 Python
解决Python的str强转int时遇到的问题
2018/04/09 Python
解决python3捕获cx_oracle抛出的异常错误问题
2018/10/18 Python
查看python安装路径及pip安装的包列表及路径
2019/04/03 Python
python进程和线程用法知识点总结
2019/05/28 Python
Python timeit模块的使用实践
2020/01/13 Python
python获取栅格点和面值的实现
2020/03/10 Python
详解python 条件语句和while循环的实例代码
2020/12/28 Python
css3旋转木马_动力节点Java学院整理
2017/07/12 HTML / CSS
新西兰珠宝品牌:Michael Hill
2017/09/16 全球购物
静态成员和非静态成员的区别
2012/05/12 面试题
本科生求职简历的自我评价
2013/10/21 职场文书
学生感冒英文请假条
2014/02/04 职场文书
关于诚信的活动方案
2014/08/18 职场文书
2014年向国旗敬礼活动总结
2014/09/27 职场文书
2015秋季开学典礼演讲稿
2015/07/16 职场文书
Python 使用 Frame tkraise() 方法在 Tkinter 应用程序中的Frame之间切换
2022/04/24 Python