一些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之集成开发环境(IDE)
Sep 12 Python
在Python的Flask框架中使用日期和时间的教程
Apr 21 Python
详谈python http长连接客户端
Jun 12 Python
Python中str.join()简单用法示例
Mar 20 Python
python使用Matplotlib绘制分段函数
Sep 25 Python
Python 保存矩阵为Excel的实现方法
Jan 28 Python
Python 异常处理Ⅳ过程图解
Oct 18 Python
基于python3监控服务器状态进行邮件报警
Oct 19 Python
详解Django配置JWT认证方式
May 09 Python
终于搞懂了Keras中multiloss的对应关系介绍
Jun 22 Python
Python 实现PS滤镜的旋涡特效
Dec 03 Python
matplotlib 画动态图以及plt.ion()和plt.ioff()的使用详解
Jan 05 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
PHP数组无限分级数据的层级化处理代码
2012/12/29 PHP
php查找字符串中第一个非0的位置截取
2017/02/27 PHP
php/JS实现的生成随机密码(验证码)功能示例
2019/06/06 PHP
网页自动刷新,不产生嗒嗒声的一个解决方法
2007/03/27 Javascript
JavaScript中yield实用简洁实现方式
2010/06/12 Javascript
一个报数游戏js版(约瑟夫环问题)
2010/08/05 Javascript
js change,propertychange,input事件小议
2011/12/20 Javascript
JQuery实现鼠标滑过显示导航下拉列表
2013/09/12 Javascript
取消选中单选框radio的三种方式示例介绍
2013/12/23 Javascript
Jquery使用val方法读写value值
2015/05/18 Javascript
原生js实现回复评论功能
2017/01/18 Javascript
使用jQuery卸载全部事件的思路详解
2017/04/03 jQuery
实例教学如何写vue插件
2017/11/30 Javascript
微信小程序实现MUI数字输入框效果
2018/01/31 Javascript
vue axios 简单封装以及思考
2018/10/09 Javascript
vue安装和使用scss及sass与scss的区别详解
2018/10/15 Javascript
vue如何实现动态加载脚本
2020/02/05 Javascript
JavaScript 替换所有匹配内容及正则替换方法
2020/02/12 Javascript
Js和VUE实现跑马灯效果
2020/05/25 Javascript
vue 动态添加的路由页面刷新时失效的原因及解决方案
2021/02/26 Vue.js
利用Python实现简单的相似图片搜索的教程
2015/04/23 Python
python实现同时给多个变量赋值的方法
2015/04/30 Python
Python正则表达式非贪婪、多行匹配功能示例
2017/08/08 Python
Python调用系统底层API播放wav文件的方法
2017/08/11 Python
Python hashlib模块实例使用详解
2019/12/24 Python
Python基于Socket实现简易多人聊天室的示例代码
2020/11/29 Python
pytorch Dataset,DataLoader产生自定义的训练数据案例
2021/03/03 Python
CSS3中的Media Queries学习笔记
2016/05/23 HTML / CSS
最好的商品表达自己:Cafepress
2019/09/04 全球购物
英国时尚配饰、珠宝和服装网站:KJ Beckett
2020/01/23 全球购物
2014五一国际劳动节活动总结范文
2014/04/14 职场文书
2014党员学习《反腐倡廉警示教育读本》思想汇报
2014/09/13 职场文书
群众路线对照检查材料
2014/09/22 职场文书
大学生社会实践活动总结报告
2015/05/06 职场文书
无罪辩护词范文
2015/05/21 职场文书
工作总结之小学教师体育工作范文(3篇)
2019/10/07 职场文书