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程序运行效率的6个方法
Mar 31 Python
Python素数检测实例分析
Jun 15 Python
python判断一个集合是否包含了另外一个集合中所有项的方法
Jun 30 Python
关于Python的一些学习总结
May 25 Python
python 读取视频,处理后,实时计算帧数fps的方法
Jul 10 Python
python使用xlrd和xlwt读写Excel文件的实例代码
Sep 05 Python
在Python中构建增广矩阵的实现方法
Jul 01 Python
Python3+Appium安装使用教程
Jul 05 Python
python wav模块获取采样率 采样点声道量化位数(实例代码)
Jan 22 Python
python输入一个水仙花数(三位数) 输出百位十位个位实例
May 03 Python
python生成可执行exe控制Microsip自动填写号码并拨打功能
Jun 21 Python
Python天气语音播报小助手
Sep 25 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基于mcrypt的加密解密实例
2014/10/27 PHP
PHP创建多级目录的两种方法
2016/10/28 PHP
PHP常用日期加减计算方法实例小结
2018/07/31 PHP
提高网站信任度的技巧
2008/10/17 Javascript
getElementsByTagName vs selectNodes效率 及兼容的selectNodes实现
2010/02/26 Javascript
用jQuery获取IE9下拉框默认值问题探讨
2013/07/22 Javascript
基于jquery实现一张图片点击鼠标放大再点缩小
2013/09/29 Javascript
iframe实用操作锦集
2014/04/22 Javascript
js实现简单随机抽奖的方法
2015/01/27 Javascript
基于jQuery实现的旋转彩圈实例
2015/06/26 Javascript
jquery对象和DOM对象的任意相互转换
2016/02/21 Javascript
浅析jQuery 3.0中的Data
2016/06/14 Javascript
js图片轮播插件的封装
2017/07/21 Javascript
vuejs实现本地数据的筛选分页功能思路详解
2017/11/15 Javascript
vue实现简单的星级评分组件源码
2018/11/16 Javascript
vue-router 起步步骤详解
2019/03/26 Javascript
基于Vue实现的多条件筛选功能的详解(类似京东和淘宝功能)
2019/05/07 Javascript
vue组件内部引入外部js文件的方法
2020/01/18 Javascript
[02:47]DOTA2英雄基础教程 野性怒吼兽王
2013/12/05 DOTA
[02:46]完美世界DOTA2联赛PWL DAY4集锦
2020/11/03 DOTA
Python tkinter模块中类继承的三种方式分析
2017/08/08 Python
Python实现图片转字符画的示例
2017/08/22 Python
python用post访问restful服务接口的方法
2018/12/07 Python
使用PyOpenGL绘制三维坐标系实例
2019/12/24 Python
html5启动原生APP总结
2020/07/03 HTML / CSS
英国最受欢迎的手表网站:Watch Shop
2016/10/21 全球购物
美国隐形眼镜零售商:LensPure
2019/03/10 全球购物
工作迟到检讨书
2014/02/21 职场文书
总账会计岗位职责
2014/03/13 职场文书
股东合作协议书
2014/04/14 职场文书
法院先进个人事迹材料
2014/05/04 职场文书
电子专业毕业生自荐信
2014/05/25 职场文书
2019年公司卫生管理制度样本
2019/08/21 职场文书
SpringBoot实现quartz定时任务可视化管理功能
2021/08/30 Java/Android
浅析CSS在DevTools 中架构演变
2021/10/05 HTML / CSS
CentOS7安装GlusterFS集群以及相关配置
2022/04/12 Servers