一些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使用scrapy采集时伪装成HTTP/1.1的方法
Apr 08 Python
Python操作MongoDB数据库PyMongo库使用方法
Apr 27 Python
用ReactJS和Python的Flask框架编写留言板的代码示例
Dec 19 Python
python迭代器与生成器详解
Mar 10 Python
python web基础之加载静态文件实例
Mar 20 Python
python版本的仿windows计划任务工具
Apr 30 Python
pandas 对series和dataframe进行排序的实例
Jun 09 Python
详解Django 中是否使用时区的区别
Jun 14 Python
对Django中的权限和分组管理实例讲解
Aug 16 Python
使用Python爬虫库BeautifulSoup遍历文档树并对标签进行操作详解
Jan 25 Python
基于tf.shape(tensor)和tensor.shape()的区别说明
Jun 30 Python
Django扫码抽奖平台的配置过程详解
Jan 14 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概述.
2006/10/09 PHP
PHP HTML代码串 截取实现代码
2009/06/29 PHP
PHP实现手机归属地查询API接口实现代码
2012/08/27 PHP
隐藏Nginx或Apache以及PHP的版本号的方法
2016/01/03 PHP
Laravel 中创建 Zip 压缩文件并提供下载的实现方法
2019/04/02 PHP
KindEditor在php环境下上传图片功能集成的方法示例
2020/07/20 PHP
JavaScript入门教程(10) 认识其他对象
2009/01/31 Javascript
window.name代替cookie的实现代码
2010/11/28 Javascript
JQuery的read函数与js的onload不同方式实现
2013/03/18 Javascript
js常用自定义公共函数汇总
2014/01/15 Javascript
深入理解$.each和$(selector).each
2016/05/15 Javascript
Bootstrap导航条鼠标悬停下拉菜单
2017/01/04 Javascript
vue.js利用defineProperty实现数据的双向绑定
2017/04/28 Javascript
webpack4 处理CSS的方法示例
2018/09/03 Javascript
AngularJs中$cookies简单用法分析
2019/05/30 Javascript
[01:08:17]2018DOTA2亚洲邀请赛3月29日 小组赛B组 EG VS VGJ.T
2018/03/30 DOTA
[08:53]DOTA2-DPC中国联赛 正赛 PSG.LGD vs LBZS 选手采访
2021/03/11 DOTA
DJANGO-ALLAUTH社交用户系统的安装配置
2014/11/18 Python
python实现超简单端口转发的方法
2015/03/13 Python
在Python程序中进行文件读取和写入操作的教程
2015/04/28 Python
Python使用getpass库读取密码的示例
2017/10/10 Python
运用TensorFlow进行简单实现线性回归、梯度下降示例
2018/03/05 Python
将tensorflow的ckpt模型存储为npy的实例
2018/07/09 Python
python打造爬虫代理池过程解析
2019/08/15 Python
Python操作excel的方法总结(xlrd、xlwt、openpyxl)
2019/09/02 Python
Python Opencv图像处理基本操作代码详解
2020/08/31 Python
Python使用pycharm导入pymysql教程
2020/09/16 Python
Python  Asyncio模块实现的生产消费者模型的方法
2021/03/01 Python
解决canvas转base64/jpeg时透明区域变成黑色背景的方法
2016/10/23 HTML / CSS
在线购买澳大利亚设计师手拿包和奢华晚装手袋:Olga Berg
2019/03/20 全球购物
机械电子工程毕业生自荐信
2013/11/23 职场文书
晚会主持词开场白
2014/03/17 职场文书
单位介绍信格式
2015/01/31 职场文书
北大自主招生自荐信
2015/03/04 职场文书
2016年元旦寄语
2015/08/17 职场文书
浅谈MySql update会锁定哪些范围的数据
2022/06/25 MySQL