python 定义数组,python数组的定义方式

  python 定义数组,python数组的定义方式

  加个. append(a))就好了。按顺序加起来,没问题。

  使用时,可以完全使用下标。

  代码复制如下代码

  一个[0].

  a[1].

  但是,引用不存在的下标会导致异常。在这一点上,只要你需要添加元素,然后引用它们,就没有问题。如果要保留空间,可以使用循环将值传递给列表,为每个元素设置默认值,然后引用它。

  例如:

  代码复制如下代码

  a=[]

  对于范围(100):

  追加([]).

  福建兰(100):

  甲[我]。追加(0)).

  这将生成一个默认值为100*100的数组。

  创建一个宽度为3、高度为4的数组

  # [ 0,0,0 ],

  # [ 0,0,0 ],

  # [ 0,0,0 ],

  # [ 0,0,0 ]

  MyList=[[0] * 3] * 4但是,当myList[0][1]=1被操作时,值将被分配给整个第2列,如下所示

  [ 0,1,0 ],

  [ 0,1,0 ],

  [ 0,1,0 ],

  [ 0,1,0 ]

  为什么?我一时也不知道,然后就搜了一下Python标准库,找到了答案。

  list * n——nshallowCopy sovlistconcatenated,n个列表的写拷贝连接。

  示例:

  代码复制如下代码

  列表=[[]] * 3

  以表格或栏的形式排列

  [ () ]、[ () ]、[ () ]、[ ) ] )。

  列表[0]。附加(3).

  以表格或栏的形式排列

  [3]、[3]、[3]、[3]、[3]][[]]

  因为是包含空列表元素的列表,[[]]*3表示对这个空列表元素的三个引用,并修改其中一个。

  一个元素将改变整个列表:

  因此,必须使用其他方法来创建多维数组,以避免浅层复制:

  代码复制如下代码

  lists=[]for iinra(www . 111 cn . net)nge(3)]

  列表[0]。附加(3).

  列表[1]。附加(5).

  列表[2]。附加(7).

  以表格或栏的形式排列

  [3]、[5]、[7]前面的二维数组创建方法是:

  mylist=[[0]*3]forIinrange(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是一种“静态”语言。定义多维数组时,第一维不变量的多维必须固定为常数,因为一切都必须在编译时确定。因为数组是线性存储在内存中的。

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: