python数组的定义方式

Python中使用列表来定义数组,可以通过.append()方法添加元素。创建多维数组时要注意浅拷贝的问题,如使用[[]]*3*4会产生引用相同列表的数组,导致修改一处影响全局。正确创建多维数组的方法是使用嵌套循环。动态创建二维数组应避免使用指针和动态分配内存,因为Python是动态类型的语言,内存管理由解释器处理。
摘要由CSDN通过智能技术生成

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

原文地址:python 定义数组,python数组的定义方式_菜鸟教程之家

本文来自网络,不代表菜鸟教程之家立场,转载请注明出处。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值