Python数组定义方法


Posted in Python onApril 13, 2016

本文实例讲述了Python数组定义方法。分享给大家供大家参考,具体如下:

Python中没有数组的数据结构,但列表很像数组,如:

a=[0,1,2]

这时:a[0]=0, a[1]=1, a[[2]=2,但引出一个问题,即如果数组a想定义为0到999怎么办?这时可能通过a = range(0, 1000)实现。或省略为a = range(1000).如果想定义1000长度的a,初始值全为0,则 a = [0 for x in range(0, 1000)]

下面是二维数组的定义:

直接定义:

a=[[1,1],[1,1]]

这里定义了一个2*2的,且初始为0的二维数组。

间接定义:

a=[[0 for x in range(10)] for y in range(10)]

这里定义了10*10初始为0的二维数组。

还有更简单的字义二维数组的方法:

b = [[0]*10]*10

定义10*10初始为0的二维数组。

与a=[[0 for x in range(10)] for y in range(10)]比较:print a==b的结果为True。

但用b的定义方法代替a后,以前的可以正常运行的程序也出错了,经过仔细分析得出区别:

a[0][0]=1时,只有a[0][0]为1,其他全为0。

b[0][0]=1时,a[0][0],a[1][0],只到a[9,0]全部为1。

由此得到大数组中的10个小的一维数据全是一个相同的引用,即指向同一地址。
故 b = [[0]*10]*10并不符合我们常规意义上的二维数组。

同时经过试验:c=[0]*10的定义与c=[0 for x in range(10)]有同样的效果,而没有上面相同引用的问题,估计数组c的定义时是值类型相乘,而前面b的用类型的相乘,因为一维数组是一个引用(借用C#中的值类型和引用类型,不知是否合适)。

希望本文所述对大家Python程序设计有所帮助。

Python 相关文章推荐
Python实现快速排序算法及去重的快速排序的简单示例
Jun 26 Python
Python中使用asyncio 封装文件读写
Sep 11 Python
django轻松使用富文本编辑器CKEditor的方法
Mar 30 Python
Python栈算法的实现与简单应用示例
Nov 01 Python
查找python项目依赖并生成requirements.txt的方法
Jul 10 Python
利用Python实现原创工具的Logo与Help
Dec 03 Python
pyqt5利用pyqtDesigner实现登录界面
Mar 28 Python
关于Python形参打包与解包小技巧分享
Aug 24 Python
Python 线程池用法简单示例
Oct 02 Python
Python运行异常管理解决方案
Mar 09 Python
Python生成器generator原理及用法解析
Jul 20 Python
详解Django ORM引发的数据库N+1性能问题
Oct 12 Python
Python基于select实现的socket服务器
Apr 13 #Python
Python简单实现子网掩码转换的方法
Apr 13 #Python
Python多进程分块读取超大文件的方法
Apr 13 #Python
Python字符串拼接、截取及替换方法总结分析
Apr 13 #Python
Python字符串格式化输出方法分析
Apr 13 #Python
PHP网页抓取之抓取百度贴吧邮箱数据代码分享
Apr 13 #Python
python 实时遍历日志文件
Apr 12 #Python
You might like
第二节--PHP5 的对象模型
2006/11/16 PHP
php实现批量下载百度云盘文件例子分享
2014/04/10 PHP
PHP CURL post数据报错 failed creating formpost data
2016/10/16 PHP
PHP数据的提交与过滤基本操作实例详解
2016/11/11 PHP
JavaScript 动态添加表格行 使用模板、标记
2009/10/24 Javascript
js获取当前地址 JS获取当前URL的示例代码
2014/02/26 Javascript
多个jQuery版本共存的处理方案
2015/03/17 Javascript
仅9张思维导图帮你轻松学习Javascript 就这么简单
2016/06/01 Javascript
AngularJS入门教程中SQL实例详解
2016/07/27 Javascript
javascript self对象使用详解
2016/10/18 Javascript
Angularjs 设置全局变量的方法总结
2016/10/20 Javascript
巧用Vue.js+Vuex制作专门收藏微信公众号的app
2016/11/03 Javascript
浅谈JS如何实现真正的对象常量
2017/06/25 Javascript
老生常谈javascript的面向对象思想
2017/08/22 Javascript
vue中实现图片和文件上传的示例代码
2018/03/16 Javascript
js基础之事件捕获与冒泡原理
2019/10/09 Javascript
vue路由结构可设一层方便动态添加路由操作
2020/08/31 Javascript
小程序实现左滑删除的效果的实例代码
2020/10/19 Javascript
编写简单的Python程序来判断文本的语种
2015/04/07 Python
详解Python的Django框架中的模版继承
2015/07/16 Python
以视频爬取实例讲解Python爬虫神器Beautiful Soup用法
2016/01/20 Python
Python自定义装饰器原理与用法实例分析
2018/07/16 Python
有关Python的22个编程技巧
2018/08/29 Python
python+numpy+matplotalib实现梯度下降法
2018/08/31 Python
Python线程障碍对象Barrier原理详解
2019/12/02 Python
python使用matplotlib的savefig保存时图片保存不完整的问题
2021/01/08 Python
清除canvas画布内容(点擦除+线擦除)
2020/08/12 HTML / CSS
美国婚礼和派对礼品网站:Kate Aspen(新娘送礼会、迎婴派对)
2018/03/28 全球购物
共产党员公开承诺书范文
2014/03/28 职场文书
语文教研活动总结
2014/07/02 职场文书
车辆转让协议书
2014/09/24 职场文书
幼儿园教师考核评语
2014/12/31 职场文书
万里长城导游词
2015/01/30 职场文书
国庆庆典邀请函
2015/02/02 职场文书
优秀教师工作总结2015
2015/07/22 职场文书
幼儿教师师德培训心得体会
2016/01/09 职场文书