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中使用logging模块打印log日志详解
Apr 05 Python
使用rpclib进行Python网络编程时的注释问题
May 06 Python
TensorFlow模型保存/载入的两种方法
Mar 08 Python
TensorFlow实现随机训练和批量训练的方法
Apr 28 Python
解决Django的request.POST获取不到内容的问题
May 28 Python
python的concat等多种用法详解
Nov 28 Python
python批量将excel内容进行翻译写入功能
Oct 10 Python
python实现批量命名照片
Jun 18 Python
Python虚拟环境的创建和包下载过程分析
Jun 19 Python
手把手教你如何用Pycharm2020.1.1配置远程连接的详细步骤
Aug 07 Python
Python获取指定网段正在使用的IP
Dec 14 Python
使用Python实现音频双通道分离
Dec 25 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
深入for,while,foreach遍历时间比较的详解
2013/06/08 PHP
php制作的简单验证码识别代码
2016/01/26 PHP
老生常谈PHP面向对象之标识映射
2017/06/21 PHP
PHP实现执行外部程序的方法详解
2017/08/17 PHP
PHP7 弃用功能
2021/03/09 PHP
JavaScript语言中的Literal Syntax特性分析
2007/03/08 Javascript
比较搞笑的js陷阱题
2010/02/07 Javascript
JS 按钮点击触发(兼容IE、火狐)
2013/08/07 Javascript
基于jQuery实现的图片切换焦点图整理
2014/12/07 Javascript
jQuery siblings()用法实例详解
2016/04/26 Javascript
windows下vue.js开发环境搭建教程
2017/03/20 Javascript
js遍历获取表格内数据的方法(必看)
2017/04/06 Javascript
JavaScript for循环 if判断语句(学习笔记)
2017/10/11 Javascript
vuex 的简单使用
2018/03/22 Javascript
Vue中的无限加载vue-infinite-loading的方法
2018/04/08 Javascript
Node.js使用cookie保持登录的方法
2018/05/11 Javascript
微信小程序的mpvue框架快速上手指南
2019/05/15 Javascript
小程序Scroll-view上拉滚动刷新数据
2020/06/21 Javascript
[06:53]DOTA2每周TOP10 精彩击杀集锦vol.3
2014/06/25 DOTA
Python re模块介绍
2014/11/30 Python
Python中线程的MQ消息队列实现以及消息队列的优点解析
2016/06/29 Python
PIL图像处理模块paste方法简单使用详解
2019/07/17 Python
python 求定积分和不定积分示例
2019/11/20 Python
Python捕获异常堆栈信息的几种方法(小结)
2020/05/18 Python
Python如何实现的二分查找算法
2020/05/27 Python
手机业务员岗位职责
2013/12/13 职场文书
幼儿园教师奖惩制度
2014/02/01 职场文书
教学改革实施方案
2014/03/31 职场文书
集中整治工作方案
2014/05/01 职场文书
我的职业生涯规划:打造自己的运动帝国
2014/09/18 职场文书
法定代表人身份证明书(含说明)
2014/10/02 职场文书
高考升学宴答谢词
2015/01/20 职场文书
幼儿园小班工作总结2015
2015/04/25 职场文书
想要创业,那么你做好准备了吗?
2019/07/01 职场文书
Android Flutter实现图片滑动切换效果
2022/04/07 Java/Android
详细介绍Java中的CyclicBarrier
2022/04/13 Java/Android