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实现的tab文件操作类分享
Nov 20 Python
Python类定义和类继承详解
May 08 Python
python简单线程和协程学习心得(分享)
Jun 14 Python
对Python闭包与延迟绑定的方法详解
Jan 07 Python
Python3.5以上版本lxml导入etree报错的解决方案
Jun 26 Python
Python使用字典实现的简单记事本功能示例
Aug 15 Python
解决Django连接db遇到的问题
Aug 29 Python
pytorch中tensor张量数据类型的转化方式
Dec 31 Python
Python 中@property的用法详解
Jan 15 Python
Python如何使用paramiko模块连接linux
Mar 18 Python
python 解决selenium 中的 .clear()方法失效问题
Sep 01 Python
细说NumPy数组的四种乘法的使用
Dec 18 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 操作调试的方法
2012/07/12 PHP
PHP中使用匿名函数操作数据库的例子
2014/11/17 PHP
php建立Ftp连接的方法
2015/03/07 PHP
PhpStorm 如何优雅的调试Hyperf的方法步骤
2019/11/24 PHP
jQuery 使用手册(一)
2009/09/23 Javascript
JavaScript中判断函数是new还是()调用的区别说明
2011/04/07 Javascript
主页面中的两个iframe实现鼠标拖动改变其大小
2013/04/16 Javascript
使用js实现按钮控制文本框加1减1应用于小时+分钟
2013/12/09 Javascript
JS保留两位小数,多位小数的示例代码
2014/01/07 Javascript
jQuery中attr()和prop()在修改checked属性时的区别
2014/07/18 Javascript
javascript实现复选框选中属性
2015/03/25 Javascript
如何用js 实现依赖注入的思想,后端框架思想搬到前端来
2015/08/03 Javascript
jQuery日历插件datepicker用法详解
2016/03/03 Javascript
第一章之初识Bootstrap
2016/04/25 Javascript
jQuery实现可拖拽3D万花筒旋转特效
2017/01/03 Javascript
微信分享调用jssdk实例
2017/06/08 Javascript
浅谈React Native Flexbox布局(小结)
2018/01/08 Javascript
vue结合Echarts实现点击高亮效果的示例
2018/03/17 Javascript
bootstrap-treeview实现多级树形菜单 后台JSON格式如何组织?
2019/07/26 Javascript
vue 对axios get pust put delete封装的实例代码
2020/01/05 Javascript
微信小程序入门之绘制时钟
2020/10/22 Javascript
通过python下载FTP上的文件夹的实现代码
2013/02/10 Python
Python使用matplotlib绘制动画的方法
2015/05/20 Python
[原创]pip和pygal的安装实例教程
2017/12/07 Python
eclipse创建python项目步骤详解
2019/05/10 Python
Django Rest framework认证组件详细用法
2019/07/25 Python
python实现图像检索的三种(直方图/OpenCV/哈希法)
2019/08/08 Python
Python将视频或者动态图gif逐帧保存为图片的方法
2019/09/10 Python
解决tensorflow训练时内存持续增加并占满的问题
2020/01/19 Python
HTML5离线缓存Manifest是什么
2016/03/09 HTML / CSS
个性与发展自我评价
2014/02/11 职场文书
学雷锋活动总结范文
2014/04/25 职场文书
最新离婚协议书范本
2014/08/19 职场文书
学术会议邀请函
2015/01/30 职场文书
月考总结与反思
2015/10/22 职场文书
《仙剑客栈2》第一弹正式宣传片公开 年内发售
2022/04/07 其他游戏