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列表与元组详解实例
Nov 01 Python
Python 闭包的使用方法
Sep 07 Python
Django 实现下载文件功能的示例
Mar 06 Python
对python sklearn one-hot编码详解
Jul 10 Python
解决pyttsx3无法封装的问题
Dec 24 Python
Atom Python 配置Python3 解释器的方法
Aug 28 Python
python matplotlib模块基本图形绘制方法小结【直线,曲线,直方图,饼图等】
Apr 26 Python
Python基于pyjnius库实现访问java类
Jul 31 Python
用Python制作音乐海报
Jan 26 Python
python中取整数的几种方法
Nov 07 Python
Python实现为PDF去除水印的示例代码
Apr 03 Python
python Tkinter模块使用方法详解
Apr 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
四月新番又没了,《Re:从零开始的异世界生活》第二季延期至7月播出
2020/05/06 日漫
深入了解PHP类Class的概念
2012/06/14 PHP
ThinkPHP的RBAC(基于角色权限控制)深入解析
2013/06/17 PHP
支持生僻字且自动识别utf-8编码的php汉字转拼音类
2014/06/27 PHP
PHP 绘制网站登录首页图片验证码
2016/04/12 PHP
js 手机号码合法性验证代码集合
2012/09/29 Javascript
JS中令人发指的valueOf方法介绍
2013/02/22 Javascript
在javascript中执行任意html代码的方法示例解读
2013/12/25 Javascript
页面加载完后自动执行一个方法的js代码
2014/09/06 Javascript
JS脚本根据手机浏览器类型跳转WAP手机网站(两种方式)
2015/08/04 Javascript
js实现二级菜单渐隐显示
2015/11/03 Javascript
JS组件Form表单验证神器BootstrapValidator
2016/01/26 Javascript
jQuery Validate表单验证插件的基本使用方法及功能拓展
2017/01/04 Javascript
在javascript中,null>=0 为真,null==0却为假,null的值详解
2017/02/22 Javascript
AngularJS 支付倒计时功能实现思路
2017/06/05 Javascript
JS获取子、父、兄节点方法小结
2017/08/14 Javascript
一文让你彻底搞清楚javascript中的require、import与export
2017/09/24 Javascript
微信小程序js文件改变参数并在视图上及时更新【推荐】
2018/06/11 Javascript
在Vant的基础上封装下拉日期控件的代码示例
2018/12/05 Javascript
五句话帮你轻松搞定js原型链
2020/12/09 Javascript
[01:10:03]OG vs EG 2018国际邀请赛淘汰赛BO3 第三场 8.23
2018/08/24 DOTA
[01:35:53]完美世界DOTA2联赛PWL S3 Magma vs GXR 第二场 12.13
2020/12/17 DOTA
python单元测试unittest实例详解
2015/05/11 Python
python 使用正则表达式按照多个空格分割字符的实例
2018/12/20 Python
python利用小波分析进行特征提取的实例
2019/01/09 Python
解决Python中定时任务线程无法自动退出的问题
2019/02/18 Python
Python内存管理实例分析
2019/07/10 Python
Python常驻任务实现接收外界参数代码解析
2020/07/21 Python
PyCharm设置注释字体颜色以及是否倾斜的操作
2020/09/16 Python
PyCharm+Miniconda3安装配置教程详解
2021/02/16 Python
德国体育用品网上商店:SC24.com
2016/08/01 全球购物
安全的后院和健身蹦床:JumpSport
2019/07/15 全球购物
《金子》教学反思
2014/04/13 职场文书
创业开店,这样方式更合理
2019/08/26 职场文书
mysql的Buffer Pool存储及原理
2022/04/02 MySQL
Mysql开启外网访问
2022/05/15 MySQL