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中函数的用法实例教程
Sep 08 Python
深入理解python中的闭包和装饰器
Jun 12 Python
使用Python3制作TCP端口扫描器
Apr 17 Python
Python实现的生成格雷码功能示例
Jan 24 Python
浅谈Python在pycharm中的调试(debug)
Nov 29 Python
python中字典按键或键值排序的实现代码
Aug 27 Python
Python collections模块使用方法详解
Aug 28 Python
python操作gitlab API过程解析
Dec 27 Python
pytorch 实现将自己的图片数据处理成可以训练的图片类型
Jan 08 Python
Python实现AI换脸功能
Apr 10 Python
Python RabbitMQ实现简单的进程间通信示例
Jul 02 Python
python库Tsmoothie模块数据平滑化异常点抓取
Jun 10 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中通过正则表达式下载内容中的远程图片的函数代码
2012/01/10 PHP
PHP实现把文本中的URL转换为链接的auolink()函数分享
2014/07/29 PHP
Laravel5.1框架注册中间件的三种场景详解
2019/07/09 PHP
使用Laravel中的查询构造器实现增删改查功能
2019/09/03 PHP
javascript动态改变img的src属性图片不显示的解决方法
2010/10/20 Javascript
jQuery学习笔记之控制页面实现代码
2012/02/27 Javascript
js获取触发事件元素在整个网页中的绝对坐标(示例代码)
2013/12/13 Javascript
js分页工具实例
2015/01/28 Javascript
深入理解angularjs过滤器
2016/05/25 Javascript
js传值后台中文出现乱码的解决方法
2016/06/30 Javascript
概述VUE2.0不可忽视的很多变化
2016/09/25 Javascript
AngularJS过滤器filter用法分析
2016/12/11 Javascript
JS仿QQ好友列表展开、收缩功能(第二篇)
2017/07/07 Javascript
JQuery选中select组件被选中的值方法
2018/03/08 jQuery
Vue.js数字输入框组件使用方法详解
2019/10/19 Javascript
Nodejs实现WebSocket代码实例
2020/05/19 NodeJs
[20:21]《一刀刀一天》第十六期:TI国际邀请赛正式打响,总奖金超过550万
2014/05/23 DOTA
python模拟新浪微博登陆功能(新浪微博爬虫)
2013/12/24 Python
centos 安装python3.6环境并配置虚拟环境的详细教程
2018/02/22 Python
python实现list由于numpy array的转换
2018/04/04 Python
python实现彩色图转换成灰度图
2019/01/15 Python
查看python安装路径及pip安装的包列表及路径
2019/04/03 Python
Django 权限认证(根据不同的用户,设置不同的显示和访问权限)
2019/07/24 Python
Python操作qml对象过程详解
2019/09/26 Python
Pytorch 保存模型生成图片方式
2020/01/10 Python
Python查找不限层级Json数据中某个key或者value的路径方式
2020/02/27 Python
详解Html5 监听拦截Android返回键方法
2018/04/18 HTML / CSS
UDP协议功能
2013/01/06 面试题
餐饮企业总经理岗位职责范文
2014/02/18 职场文书
施工工地安全标语
2014/06/07 职场文书
助学感谢信范文
2015/01/21 职场文书
歌舞青春观后感
2015/06/10 职场文书
青年岗位能手事迹材料(2016推荐版)
2016/03/01 职场文书
css实现文章分割线样式的多种方法总结
2021/04/21 HTML / CSS
python利用pandas分析学生期末成绩实例代码
2021/07/09 Python
html form表单基础入门案例讲解
2021/07/15 HTML / CSS