当前位置: 首页 > 图文教程 > 脚本技术 > Python > Python 初始化多维数组代码

Python
Python 调用DLL操作抄表机
python 输出一个两行字符的变量
用Python的urllib库提交WEB表单
Python 返回汉字的汉语拼音
python mysqldb连接数据库
python 判断自定义对象类型
Python字符串的encode与decode研究心得乱码问题解决方法
python 获取文件列表(或是目录例表)
python启动办公软件进程(word、excel、ppt、以及wps的et、wps、wpp)
python 获取et和excel的版本号
python ElementTree 基本读操作示例
python 判断一个进程是否存在
python thread 并发且顺序运行示例
合并Excel工作薄中成绩表的VBA代码,非常适合教育一线的朋友
Python 解析XML文件
asp Http_Referer,Server_Name和Http_Host
Python 自动安装 Rising 杀毒软件
用python实现的可以拷贝或剪切一个文件列表中的所有文件
Python 正则表达式操作指南
python ip正则式

Python 初始化多维数组代码


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-09-11   浏览: 332 ::
收藏到网摘: n/a

python多维数组方法示例代码 Python中初始化一个5 x 3每项为0的数组,最好方法是:
multilist = [[0 for col in range(5)] for row in range(3)]

我们知道,为了初始化一个一维数组,我们可以这样做:
alist = [0] * 5

没错,那我们初始化一个二维数组时,是否可以这样做呢:
multi = [[0] * 5] * 3

其实,这样做是不对的,因为[0] * 5是一个一维数组的对象,* 3的话只是把对象的引用复制了3次,比如,我修改multi[0][0]:
multi = [[0] * 5] * 3
multi[0][0]
= 'Love China'
print multi
输出的结果将是:
[['Love China', 0, 0, 0, 0], ['Love China', 0, 0, 0, 0], ['Love China', 0, 0, 0, 0]]
我们修改了multi[0][0],却把我们的multi[1][0],multi[2][0]也修改了。这不是我们想要的结果。
如果我们这样写呢:
multilist = [[0] * 5 for row in range(3)]
multilist[0][0]
= 'Love China'
print multilist
我们看输出结果:
[['Love China', 0, 0, 0, 0], [0, 0, 0, 0, 0], [0, 0, 0, 0, 0]]
恩,没问题。但是,由于使用 * 的方法比较容易引起混淆导致Bug,所以还是推荐使用上面第一种方法,即:
multilist = [[0 for col in range(5)] for row in range(3)]