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在windows中的文件路径问题
Apr 28 Python
浅谈python下tiff图像的读取和保存方法
Dec 04 Python
Python3实现的简单工资管理系统示例
Mar 12 Python
用Q-learning算法实现自动走迷宫机器人的方法示例
Jun 03 Python
深入了解Python枚举类型的相关知识
Jul 09 Python
django rest framework 实现用户登录认证详解
Jul 29 Python
python可视化篇之流式数据监控的实现
Aug 07 Python
python定位xpath 节点位置的方法
Aug 27 Python
python中如何进行连乘计算
May 28 Python
浅谈keras 的抽象后端(from keras import backend as K)
Jun 16 Python
python中HTMLParser模块知识点总结
Jan 25 Python
pycharm debug 断点调试心得分享
Apr 16 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中获取关键词及所属来源搜索引擎名称的代码
2011/02/15 PHP
Smarty模板学习笔记之Smarty简介
2014/05/20 PHP
destoon实现首页显示供应、企业、资讯条数的方法
2014/07/15 PHP
php打印一个边长为N的实心和空心菱型的方法
2015/03/02 PHP
PHP获取IP地址所在地信息的实例(使用纯真IP数据库qqwry.dat)
2016/11/15 PHP
javascript类继承机制的原理分析
2009/09/12 Javascript
js禁止回车提交表单的示例代码
2013/12/23 Javascript
JavaScript框架(iframe)操作总结
2014/04/16 Javascript
js单独获取一个checkbox看其是否被选中
2014/09/22 Javascript
Angularjs基础知识及示例汇总
2015/01/22 Javascript
window.onload与$(document).ready()的区别分析
2015/05/30 Javascript
很全面的JavaScript常用功能汇总集合
2016/01/22 Javascript
jquery 实现滚动条下拉时无限加载的简单实例
2016/06/01 Javascript
关于vue.js弹窗组件的知识点总结
2016/09/11 Javascript
详解nodejs 文本操作模块-fs模块(四)
2016/12/22 NodeJs
详解vue之页面缓存问题(基于2.0)
2017/01/10 Javascript
Bootstrap多级菜单的实现代码
2017/05/23 Javascript
关于页面刷新vuex数据消失问题解决方案
2017/07/03 Javascript
微信小程序支付之c#后台实现方法
2017/10/19 Javascript
Vue-Quill-Editor富文本编辑器的使用教程
2018/09/21 Javascript
小程序中this.setData的使用和注意事项
2019/08/28 Javascript
微信小程序分包加载代码实现方法详解
2019/09/23 Javascript
Vue 刷新当前路由的实现代码
2019/09/26 Javascript
vue 解决路由只变化参数页面组件不更新问题
2019/11/05 Javascript
Vue的Eslint配置文件eslintrc.js说明与规则介绍
2020/02/03 Javascript
python实现关键词提取的示例讲解
2018/04/28 Python
python os模块简单应用示例
2019/05/23 Python
Python3中的f-Strings增强版字符串格式化方法
2020/03/04 Python
Python中操作各种多媒体,视频、音频到图片的代码详解
2020/06/04 Python
MVMT手表官方网站:时尚又实惠的高品质手表
2016/12/04 全球购物
LTD Commodities:礼品,独特发现,家居装饰,家用器皿
2017/08/11 全球购物
Becextech新西兰:数码单反相机和手机在线商店
2018/04/27 全球购物
自我鉴定范文300字
2013/10/01 职场文书
酒店总经理助理岗位职责
2014/02/01 职场文书
大学生个人求职信例文
2014/07/07 职场文书
如何使用PostgreSQL进行中文全文检索
2021/05/27 PostgreSQL