python中数组与多维数组用法介绍
增加时a.append( 'a ')就可以了。只要按顺序加,就没有问题 。
使用时,完全可以使用下标:
代码如下 复制代码
a[0]
a[1]
但出果引用不存在的下标,则会引发异常。这时,你需要先添加元素,再引用就没有问题 了。如果想预先保留空间,可以使用循环来给list,每个元素一个缺省值,再引用就不会有问题 了。
如:
代码如下 复制代码
a=[]
for i in range(100):
a.append([])
for j in range(100):
a[i].append(0)
这样就生成了一个100*100缺省值为0的数组。
#创建一个宽度为3,高度为4的数组
#[[0,0,0],
# [0,0,0],
# [0,0,0],
# [0,0,0]]
myList = [[0] * 3] * 4但是当操作myList[0][1] = 1时,发现整个第二列都被赋值,变成
[[0,1,0],
[0,1,0],
[0,1,0],
[0,1,0]]
为什么...一时搞不懂,后面翻阅The Python Standard Library 找到答案
list * n—>n shallow copies of list concatenated, n个list的浅拷贝的连接
例:
代码如下 复制代码
>>> lists = [[]] * 3
>>> lists
[[], [], []]
>>> lists[0].append(3)
>>> lists
[[3], [3], [3]][[]]
是一个含有一个空列表元素的列表,所以[[]]*3表示3个指向这个空列表元素的引用,修改任何
一个元素都会改变整个列表:
所以需要用另外一种方式进行创建多维数组,以免浅拷贝:
代码如下 复制代码
>>> lists = [[] for i in ra(www.111cn.net)nge(3)]
>>> lists[0].append(3)
>>> lists[1].append(5)
>>> lists[2].append(7)
>>> lists
[[3], [5], [7]]之前的二维数组创建方式为:
myList = [([0] * 3) for i in range(4)]
比如, 要动态创建一个 二维数组:
代码如下 复制代码
int** pTwoDimArr = new int[10][20];
pTwoDimArr[0][0] = 5;
这样好像很直观,不过,编译会出错:
代码如下 复制代码
cannot convert from 'int (*)[20] ' to 'int ** '
如果这样:
代码如下 复制代码
int pTwoDimArr[10][20];
pTwoDimArr[0][0] = 5;
是可以的,但是 这个数组的内存却是在栈上分配的,所以,
代码如下 复制代码
void main(){
int pTwoDimArr[1000][1000];
}
编译没问题,运行就会死掉
作为全局变量是可以的,但最好杜绝吧
代码如下 复制代码
int pTwoDimArr[1000][1000];
void main(){
}
这样:
代码如下 复制代码
int (*pTwoDimArr)[1000] = new int[1000][1000];
pTwoDimArr[0][0] = 5;
动态分配是可以的, 一来记得释放内存,二来维数还是要固定的(第一维可变),是不是有些不爽
因为 C++ 是“静态”语言, 在编译期要确定好一切,所以在多维数组的定义时除了第一维可变外,其他几维都要固定为常数,因为数组在内存中是线性存储的。
from:http://www.111cn.net/phper/python/41780.htm
python中数组与多维数组用法介绍的更多相关文章
- php中向前台js中传送一个二维数组
在php中向前台js中传送一个二维数组,并在前台js接收获取其中值的全过程方法: (1),方法说明:现在后台将数组发送到前台 echo json_encode($result); 然后再在js页面中的 ...
- python 调用C++ DLL,传递int,char,char*,数组和多维数组
ctypes 数据类型和 C数据类型 对照表 ctypes type C type Python type c_bool _Bool bool (1) c_char char 1-character ...
- 地图四叉树一般用在GIS中,在游戏寻路中2D游戏中一般用2维数组就够了
地图四叉树一般用在GIS中,在游戏寻路中2D游戏中一般用2维数组就够了 四叉树对于区域查询,效率比较高. 原理图
- C#中的数组,多维数组和交错数组
想研究一些面向对象的东西,也许是代码写得还不够多.感觉还不好,看那些教程,不是嫌太水就是太难看不懂.心情很是落寞 不过再怎样也要坚持每天发一篇博客. 这篇来说一下C#中的数组,多维数组,交错数组的一些 ...
- C语言中如何将二维数组作为函数的参数传递
今天写程序的时候要用到二维数组作参数传给一个函数,我发现将二维数组作参数进行传递还不是想象得那么简单里,但是最后我也解决了遇到的问题,所以这篇文章主要介绍如何处理二维数组当作参数传递的情况,希望大家不 ...
- php中count获取多维数组长度的方法
转自:http://www.jb51.net/article/57021.htm 本文实例讲述了php中count获取多维数组长度的实现方法.分享给大家供大家参考.具体分析如下: 先来看看下面程序运行 ...
- 以杨辉三角为例,从内存角度简单分析C语言中的动态二维数组
学C语言,一定绕不过指针这一大难关,而指针最让人头疼的就是各种指向关系,一阶的指针还比较容易掌握,但一旦阶数一高,就很容易理不清楚其中的指向关系,现在我将通过杨辉三角为例,我会用四种方法从内存的角度简 ...
- Java中如何获取多维数组的长度
在程序处理中遍历数组是一种很常见的操作,但遍历数组时,我们需要知道数组各维度的长度(一维数组除外,for each 可以遍历),下面举例说明如何求多维数组的长度. 一维 : int [] array ...
- Python 中的字节与字节数组
Python 中的字节与字节数组 - Python - 伯乐在线 http://python.jobbole.com/84839/
- <转载>c++中new一个二维数组
原文连接 在c++中定义一个二维数组时有多种方式,下面是几种定义方式的说明:其中dataType 表示数据类型,如int byte long... 1.dataType (*num)[n] = n ...
随机推荐
- 微信小程序 - 分包加载(独立分包)
独立分包是小程序中一种特殊类型的分包,可以独立于主包和其他分包运行.从独立分包中页面进入小程序时,不需要下载主包.当用户进入普通分包或主包内页面时,主包才会被下载 将某些具有一定功能独立性的页面配置到 ...
- 【Thinking in Java】读书笔记
转载请注明原文地址:http://www.cnblogs.com/ygj0930/p/6480258.html 第三章:操作符 1:基本数据类型的比较用 ==.!=,引用类型的==.!=是针对地址的比 ...
- Tomcat中的session实现
Tomcat中一个会话对应一个session,其实现类是StandardSession,查看源码,可以找到一个attributes成员属性,即存储session的数据结构,为ConcurrentHas ...
- 2、redis原生的命令操作不同数据类型
一.常用数据类型简介: redis常用五种数据类型:string,hash,list,set,zset(sorted set). 1.String类型 String是最简单的类型,一个key对应一个v ...
- [转]文件后缀与Mime类型对照表
//文档文件类型的 .ai application/postscript .eps application/postscript .exe application/octet-stream .doc ...
- 转 configure: error: *** libmcrypt was not found解决方案
安装到mcrypt的时候出现了问题./configure提示出错,首先提示*** Could not run libmcrypt test program, checking why…*** The ...
- Centos7 安装 docker-ce
本文参考官网地址:https://docs.docker.com/install/linux/docker-ce/centos/#os-requirements 1.卸载旧版本的docker $ su ...
- linux mysql 数据库开启外部访问设置指南
Linux下设置MySQL和允许外部机器访问,具体目录是具体情况而定,有的人是安装了在个人目录下,则找到对应的目录则可以 Linux下设置MySQL和允许外部机器访问sudo vi /etc/my.c ...
- shell笔记-算术运算
算术运算在Bash shell环境中,可以利用let.(( ))和[]执行基本的算术操作.而在进行高级操作时,expr和bc这两个工具也会非常有用.let命令可以直接执行基本的算术操作.当使用let时 ...
- Chrome 好玩的插件
1 Lastpass : 用来把往各个网址的密码云端存储. 2 EditThisCookie : 查看网页的Cookie 3 Postman Interceptor : 用来配合Postman 进 ...