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开发的实用计算器完整实例
May 10 Python
Python实现随机生成手机号及正则验证手机号的方法
Apr 25 Python
运行django项目指定IP和端口的方法
May 14 Python
python批量读取文件名并写入txt文件中
Sep 05 Python
完美解决pycharm导入自己写的py文件爆红问题
Feb 12 Python
Python安装whl文件过程图解
Feb 18 Python
python GUI库图形界面开发之PyQt5信号与槽基本操作
Feb 25 Python
Python通过2种方法输出带颜色字体
Mar 02 Python
Python matplotlib绘制图形实例(包括点,曲线,注释和箭头)
Apr 17 Python
解决在keras中使用model.save()函数保存模型失败的问题
May 21 Python
基于Keras的格式化输出Loss实现方式
Jun 17 Python
python 5个实用的技巧
Sep 27 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 时间计算问题小结
2009/01/04 PHP
php URL编码解码函数代码
2009/03/10 PHP
PHP大文件分割上传 PHP分片上传
2017/08/28 PHP
写出更好的JavaScript之undefined篇(上)
2009/11/22 Javascript
js判断选择时间不能小于当前时间的示例代码
2013/09/24 Javascript
setInterval()和setTimeout()的用法和区别示例介绍
2013/11/17 Javascript
页面加载完成后再执行JS的jquery写法以及区别说明
2014/02/22 Javascript
javascript搜索框点击文字消失失焦时文本出现
2014/09/18 Javascript
3种Jquery限制文本框只能输入数字字母的方法
2014/12/03 Javascript
基于canvas实现的钟摆效果完整实例
2016/01/26 Javascript
ajax异步请求详解
2017/01/06 Javascript
jQuery实现获取h1-h6标题元素值的方法
2017/03/06 Javascript
Nodejs实现多房间简易聊天室功能
2017/06/20 NodeJs
详解用node搭建简单的静态资源管理器
2017/08/09 Javascript
vue非父子组件通信问题及解决方法
2018/06/11 Javascript
js new Date()实例测试
2019/10/31 Javascript
从零开始在vue-cli4配置自适应vw布局的实现
2020/06/08 Javascript
[01:08]2014DOTA2展望TI 剑指西雅图LGD战队专访
2014/06/30 DOTA
[49:56]VG vs Optic 2018国际邀请赛小组赛BO2 第一场 8.19
2018/08/21 DOTA
Flask SQLAlchemy一对一,一对多的使用方法实践
2013/02/10 Python
用pandas按列合并两个文件的实例
2018/04/12 Python
pandas获取groupby分组里最大值所在的行方法
2018/04/20 Python
对python中的高效迭代器函数详解
2018/10/18 Python
pandas 数据类型转换的实现
2020/12/29 Python
Python制作运行进度条的实现效果(代码运行不无聊)
2021/02/24 Python
使用canvas实现黑客帝国数字雨效果
2020/01/02 HTML / CSS
HTML利用九宫格原理进行网页布局
2020/03/13 HTML / CSS
日本小田急百货官网:Odakyu
2018/07/19 全球购物
Pandora德国官网:购买潘多拉手链、戒指、项链和耳环
2020/02/20 全球购物
泰海淘:泰国king Power王权免税集团旗下跨境海淘综合型电商
2020/07/26 全球购物
EJB timer的种类
2014/10/28 面试题
学生打架检讨书
2014/02/14 职场文书
人事专员岗位职责说明书
2014/07/30 职场文书
工程承包协议书范本
2014/09/29 职场文书
了解Kubernetes中的Service和Endpoint
2022/04/01 Servers
Spring Boot 使用 Spring-Retry 进行重试框架
2022/04/24 Java/Android