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

Python
Python完全新手教程
Python学习资料
Python入门
一篇不错的Python入门教程
王纯业的Python学习笔记 下载
python的几种开发工具介绍
python编程-将Python程序转化为可执行程序[整理]
在漏洞利用Python代码真的很爽
推荐下python/ironpython:从入门到精通
python 图片验证码代码
wxpython 学习笔记 第一天
python 正则表达式 概述及常用字符
python 生成目录树及显示文件大小的代码
PHP webshell检查工具 python实现代码
phpsir 开发 一个检测百度关键字网站排名的python 程序
Cython 三分钟入门教程
Python中的Function定义方法
Python 流程控制实例代码
Python 字符串定义
Python 第一步 hello world

Python 初始化多维数组代码


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-09-11   浏览: 336 ::
收藏到网摘: 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)]