一些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实现的用于搜索文件并进行内容替换的类实例
Jun 28 Python
Python文件操作,open读写文件,追加文本内容实例
Dec 14 Python
Python获取昨天、今天、明天开始、结束时间戳的方法
Jun 01 Python
实例分析python3实现并发访问水平切分表
Sep 29 Python
python如何实现从视频中提取每秒图片
Oct 22 Python
Python3 使用map()批量的转换数据类型,如str转float的实现
Nov 29 Python
Python3中的f-Strings增强版字符串格式化方法
Mar 04 Python
python 动态绘制爱心的示例
Sep 27 Python
Python在centos7.6上安装python3.9的详细教程(默认python版本为2.7.5)
Oct 15 Python
python3从网络摄像机解析mjpeg http流的示例
Nov 13 Python
python实现图片转字符画
Feb 19 Python
使用Python+OpenCV进行卡类型及16位卡号数字的OCR功能
Aug 30 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
在windows iis5下安装php4.0+mysql之我见
2006/10/09 PHP
php流量统计功能的实现代码
2012/09/29 PHP
php获取网页中图片、DIV内容的简单方法
2014/06/19 PHP
PHP中strncmp()函数比较两个字符串前2个字符是否相等的方法
2016/01/07 PHP
PHP识别二维码的方法(php-zbarcode安装与使用)
2016/07/07 PHP
php实现微信扫码自动登陆与注册功能
2016/09/22 PHP
PHP简单实现二维数组的矩阵转置操作示例
2017/11/24 PHP
PHP 应用容器化以及部署方法
2018/02/12 PHP
php文件包含的几种方式总结
2019/09/19 PHP
php使用json-schema模块实现json校验示例
2019/09/28 PHP
javascript arguments 传递给函数的隐含参数
2009/08/21 Javascript
30个让人兴奋的视差滚动(Parallax Scrolling)效果网站
2012/03/04 Javascript
利用JavaScript检测CPU使用率自己写的
2014/03/22 Javascript
jQuery背景插件backstretch使用指南
2015/04/21 Javascript
js变形金刚文字特效代码分享
2015/08/20 Javascript
jQuery实现单击弹出Div层窗口效果(可关闭可拖动)
2015/09/19 Javascript
javascript入门教程基础篇
2015/11/16 Javascript
Bootstrap的class样式小结
2016/12/01 Javascript
AngularJS入门教程二:在路由中传递参数的方法分析
2017/05/27 Javascript
Javascript实现base64的加密解密方法示例
2017/06/27 Javascript
微信小程序防止多次点击跳转和防止表单组件输入内容多次验证功能(函数防抖)
2019/09/19 Javascript
Python中用pyinstaller打包时的图标问题及解决方法
2020/02/17 Python
Python 实现自动完成A4标签排版打印功能
2020/04/09 Python
Python类super()及私有属性原理解析
2020/06/15 Python
手把手教你从PyCharm安装到激活(最新激活码),亲测有效可激活至2089年
2020/11/25 Python
大学生学习党课思想汇报
2014/01/03 职场文书
库房管理员岗位职责
2014/03/09 职场文书
岗位竞聘书范文
2014/03/31 职场文书
学生请假条格式
2014/04/11 职场文书
分家协议书
2014/04/21 职场文书
教师师德演讲稿
2014/05/06 职场文书
就业协议书怎么填
2014/09/15 职场文书
2014镇党委班子对照检查材料思想汇报
2014/09/23 职场文书
2014党员整改措施思想汇报
2014/10/07 职场文书
2019年度政务公开考核工作总结模板
2019/11/11 职场文书
Linux磁盘管理方法介绍
2022/06/01 Servers