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写的Tkinter程序屏幕居中方法
Mar 10 Python
python查看zip包中文件及大小的方法
Jul 09 Python
python使用xlrd与xlwt对excel的读写和格式设定
Jan 21 Python
Python自动化运维之IP地址处理模块详解
Dec 10 Python
python 定义给定初值或长度的list方法
Jun 23 Python
Python中asyncio与aiohttp入门教程
Oct 16 Python
Ubuntu18.04中Python2.7与Python3.6环境切换
Jun 14 Python
python3.x+pyqt5实现主窗口状态栏里(嵌入)显示进度条功能
Jul 04 Python
Python Pandas 转换unix时间戳方式
Dec 07 Python
利用PyQt中的QThread类实现多线程
Feb 18 Python
python如何利用Mitmproxy抓包
Oct 10 Python
Python编程中Python与GIL互斥锁关系作用分析
Sep 15 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
显示程序执行时间php函数代码
2013/08/29 PHP
php socket实现的聊天室代码分享
2014/08/16 PHP
laravel 实现设置时区的简单方法
2019/10/10 PHP
thinkphp5框架实现数据库读取的数据转换成json格式示例
2019/10/10 PHP
文本框的字数限制功能jquery插件
2009/11/24 Javascript
jQuery获取地址栏参数插件(模仿C#)
2010/10/26 Javascript
JavaScript打印iframe内容示例代码
2013/08/20 Javascript
javascript动态的改变IFrame的高度实现自动伸展
2013/10/12 Javascript
JS 如何获取radio选中后的值及不选择取radio的值
2013/10/28 Javascript
浅谈checkbox的一些操作(实战经验)
2013/11/20 Javascript
JS实现方向键切换输入框焦点的方法
2015/08/19 Javascript
javascript实现简单计算器效果【推荐】
2016/04/19 Javascript
JS实现太极旋转思路分析
2016/12/09 Javascript
jQuery中弹出iframe内嵌页面元素到父页面并全屏化的实例代码
2016/12/27 Javascript
node文件上传功能简易实现代码
2017/06/16 Javascript
Vue 过滤器filters及基本用法
2017/12/26 Javascript
详解redis在nodejs中的应用
2018/05/02 NodeJs
Vue与Node.js通过socket.io通信的示例代码
2018/07/25 Javascript
JS实现深度优先搜索求解两点间最短路径
2019/01/17 Javascript
微信小程序实现限制用户转发功能的实例代码
2020/02/22 Javascript
js实现简易计算器小功能
2020/11/18 Javascript
如何在现代JavaScript中编写异步任务
2021/01/31 Javascript
[59:32]Liquid vs Fnatic 2019国际邀请赛淘汰赛败者组BO1 8.20.mp4
2020/07/19 DOTA
Python列表删除的三种方法代码分享
2017/10/31 Python
python针对excel的操作技巧
2018/03/13 Python
python实现批量解析邮件并下载附件
2018/06/19 Python
python json.dumps中文乱码问题解决
2020/04/01 Python
借款协议书范本
2014/04/22 职场文书
副职竞争上岗演讲稿
2014/05/12 职场文书
企业文化宣传标语
2014/06/09 职场文书
医院党员公开承诺书
2014/08/30 职场文书
私人房屋买卖协议书
2014/10/04 职场文书
小学生安全教育广播稿
2014/10/20 职场文书
单身证明格式样本
2015/06/15 职场文书
2016年会领导致辞稿
2015/07/29 职场文书
Android基础入门之dataBinding的简单使用教程
2022/06/21 Java/Android