Python 初始化多维数组代码


Posted in Python onSeptember 06, 2008

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)]
Python 相关文章推荐
python基础教程之字典操作详解
Mar 25 Python
Python实现多行注释的另类方法
Aug 22 Python
理解Python垃圾回收机制
Feb 12 Python
Python数据结构与算法之二叉树结构定义与遍历方法详解
Dec 12 Python
对python以16进制打印字节数组的方法详解
Jan 24 Python
django表单的Widgets使用详解
Jul 22 Python
Python统计分析模块statistics用法示例
Sep 06 Python
redis数据库及与python交互用法简单示例
Nov 01 Python
基于Python绘制个人足迹地图
Jun 01 Python
浅谈opencv自动光学检测、目标分割和检测(连通区域和findContours)
Jun 04 Python
python语言中有算法吗
Jun 16 Python
Python Flask搭建yolov3目标检测系统详解流程
Nov 07 Python
Python enumerate遍历数组示例应用
Sep 06 #Python
Python 拷贝对象(深拷贝deepcopy与浅拷贝copy)
Sep 06 #Python
Python httplib,smtplib使用方法
Sep 06 #Python
Python 命令行参数sys.argv
Sep 06 #Python
Python 时间处理datetime实例
Sep 06 #Python
Python linecache.getline()读取文件中特定一行的脚本
Sep 06 #Python
Python open读写文件实现脚本
Sep 06 #Python
You might like
几个php应用技巧
2008/03/27 PHP
基于PHP字符串的比较函数strcmp()与strcasecmp()的使用详解
2013/05/15 PHP
php 发送带附件邮件示例
2014/01/23 PHP
laravel ORM 只开启created_at的几种方法总结
2018/01/29 PHP
PHP实现文字写入图片功能
2019/02/18 PHP
javascript setTimeout和setInterval 的区别
2009/12/08 Javascript
iframe 上下滚动条如何默认在下方实现原理
2012/12/10 Javascript
Jjcarousellite 实现图片列表滚动的简单实例
2013/11/29 Javascript
JavaScript实现防止网页被嵌入Frame框架的代码分享
2014/12/29 Javascript
jQuery超精致图片轮播幻灯片特效代码分享
2015/09/10 Javascript
jQuery+json实现动态创建复杂表格table的方法
2016/10/25 Javascript
关于jQuery EasyUI 中刷新Tab选项卡后一个页面变形的解决方法
2017/03/02 Javascript
JS简单实现点击跳转登陆邮箱功能的方法
2017/10/31 Javascript
vue.js响应式原理解析与实现
2020/06/22 Javascript
element-ui 上传图片后清空图片显示的实例
2018/09/04 Javascript
JavaScript实现的联动菜单特效示例
2019/07/08 Javascript
node.js实现上传文件功能
2019/07/15 Javascript
Webpack的Loader和Plugin的区别
2020/11/09 Javascript
python 使用值来排序一个字典的方法
2018/11/16 Python
python-opencv颜色提取分割方法
2018/12/08 Python
Python将主机名转换为IP地址的方法
2019/08/14 Python
python elasticsearch环境搭建详解
2019/09/02 Python
Pycharm+Python+PyQt5使用详解
2019/09/25 Python
ipad上运行python的方法步骤
2019/10/12 Python
python内打印变量之%和f的实例
2020/02/19 Python
基于Python采集爬取微信公众号历史数据
2020/11/27 Python
python 基于opencv 绘制图像轮廓
2020/12/11 Python
css图标制作教程制作云图标
2014/01/19 HTML / CSS
No7 Beauty美国官网:英国国民护肤品牌
2019/10/31 全球购物
Laravel的加密解密与哈希实例讲解
2021/03/24 PHP
2014年销售工作总结范文
2014/12/01 职场文书
拖欠货款起诉状
2015/05/20 职场文书
《围炉夜话》110句人生箴言,精辟有内涵,引人深思
2019/10/23 职场文书
Python 统计序列中元素的出现频度
2022/04/26 Python
让JavaScript代码更加精简的方法技巧
2022/06/01 Javascript
Windows10安装Apache2.4的方法步骤
2022/06/25 Servers