一些Python中的二维数组的操作方法


Posted in Python onMay 02, 2015

需要在程序中使用二维数组,网上找到一种这样的用法:
 

#创建一个宽度为3,高度为4的数组
#[[0,0,0], 
# [0,0,0],
# [0,0,0],
# [0,0,0]]
myList = [[0] * 3] * 4

但是当操作myList[0][1] = 1时,发现整个第二列都被赋值,变成

[[0,1,0],

[0,1,0],

[0,1,0],

[0,1,0]]

为什么...一时搞不懂,后面翻阅The Python Standard Library 找到答案

list * n—>n shallow copies of list concatenated, n个list的浅拷贝的连接

例:
 

>>> lists = [[]] * 3
>>> lists
[[], [], []]
>>> lists[0].append(3)
>>> lists
[[3], [3], [3]]

[[]]是一个含有一个空列表元素的列表,所以[[]]*3表示3个指向这个空列表元素的引用,修改任何

一个元素都会改变整个列表:

所以需要用另外一种方式进行创建多维数组,以免浅拷贝:
 

>>> lists = [[] for i in range(3)]
>>> lists[0].append(3)
>>> lists[1].append(5)
>>> lists[2].append(7)
>>> lists
[[3], [5], [7]]

之前的二维数组创建方式为:
 

myList = [([0] * 3) for i in range(4)]
Python 相关文章推荐
从零学Python之入门(三)序列
May 25 Python
浅析Python的Django框架中的Memcached
Jul 23 Python
谈谈如何手动释放Python的内存
Dec 17 Python
python中实现精确的浮点数运算详解
Nov 02 Python
python3之模块psutil系统性能信息使用
May 30 Python
Python代码打开本地.mp4格式文件的方法
Jan 03 Python
python Elasticsearch索引建立和数据的上传详解
Aug 04 Python
Python进度条的制作代码实例
Aug 31 Python
Python动态强类型解释型语言原理解析
Mar 25 Python
Django 实现对已存在的model进行更改
Mar 28 Python
python Django 反向访问器的外键冲突解决
May 20 Python
Python识别处理照片中的条形码
Nov 16 Python
在Python的Tornado框架中实现简单的在线代理的教程
May 02 #Python
探究Python的Tornado框架对子域名和泛域名的支持
May 02 #Python
Python编程中运用闭包时所需要注意的一些地方
May 02 #Python
按日期打印Python的Tornado框架中的日志的方法
May 02 #Python
详细解读Python的web.py框架下的application.py模块
May 02 #Python
使用Python的web.py框架实现类似Django的ORM查询的教程
May 02 #Python
在ironpython中利用装饰器执行SQL操作的例子
May 02 #Python
You might like
yii框架搜索分页modle写法
2016/12/19 PHP
php检测mysql表是否存在的方法小结
2017/07/20 PHP
JavaScript iframe的相互操作浅析
2009/10/14 Javascript
浅谈Sizzle的“编译原理”
2015/04/14 Javascript
js获取本机操作系统类型的两种方法
2015/12/19 Javascript
使用微信内置浏览器点击下拉框出现页面乱跳转现象(iphone),该怎么办
2016/01/04 Javascript
限制只能输入数字的实现代码
2016/05/16 Javascript
深入解析Javascript闭包的功能及实现方法
2016/07/10 Javascript
js实现千分符和保留几位小数的简单实例
2016/08/01 Javascript
微信小程序 Record API详解及实例代码
2016/09/30 Javascript
JavaScript仿网易选项卡制作代码
2016/10/06 Javascript
DOM 事件的深入浅出(二)
2016/12/05 Javascript
基于JavaScript实现移动端无限加载分页
2017/03/27 Javascript
JS实现的全排列组合算法示例
2017/10/09 Javascript
jQuery获取所有父级元素及同级元素及子元素的方法(推荐)
2018/01/21 jQuery
Vue.js点击切换按钮改变内容的实例讲解
2018/08/22 Javascript
json字符串对象转换代码实例
2019/09/28 Javascript
JavaScript实现复选框全选和取消全选
2020/11/20 Javascript
numpy下的flatten()函数用法详解
2019/05/27 Python
Python button选取本地图片并显示的实例
2019/06/13 Python
pygame实现俄罗斯方块游戏(AI篇2)
2019/10/29 Python
keras 回调函数Callbacks 断点ModelCheckpoint教程
2020/06/18 Python
理肤泉加拿大官网:La Roche-Posay加拿大
2018/07/06 全球购物
SIXPAD智能健身仪英国官网:革命性的训练装备品牌
2018/09/27 全球购物
英国伦敦的睡衣品牌:Asceno
2019/10/06 全球购物
iKRIX意大利网上商店:男女豪华服装和配件
2019/10/09 全球购物
护士自我鉴定
2013/10/23 职场文书
生产现场工艺工程师岗位职责
2013/11/28 职场文书
倡议书格式
2014/04/14 职场文书
离婚财产处理协议书
2014/09/30 职场文书
招标保密承诺书
2015/01/20 职场文书
重阳节慰问信
2015/02/15 职场文书
刘胡兰观后感
2015/06/16 职场文书
2016新年问候语大全
2015/11/11 职场文书
SQL注入详解及防范方法
2021/12/06 MySQL
Python必备技巧之函数的使用详解
2022/04/04 Python