Python数组中实际应用的数据结构的操作方案

开发 后端
Python数组在实际的应用的过程中,也许你会遇到很多的问题就针对这一些常见问题,下面的文章会给出相关的解答方案。

本文主要介绍的是Python数组在实际应用过程中的操作方案,如果你在Python数组的实际应用的过程中有疑惑的情况下,你就可以浏览以下的文章,希望对你会有所帮助,以下就是文章的具体介绍。

本文并不详细介绍Python列表,可以参看Python文档。Python数组中没有数组的数据结构,但列表很像数组,如:

  1. a=[0,1,2] 

这时

  1. a[0]=0, a[1]=1, a[[2]=2  
  2.  

 

但引出一个问题,即如果数组a想定义为0到999怎么办,这时可能通过a = range(0, 1000)实现。或省略为a = range(1000).如果想定义1000长度的a,初始值全为0,则

  1. a = [0 for x in range(0, 1000)]  

 

下面是二维数组的定义:直接定义

  1. a=[[1,1],[1,1]],  

 

这里定义了一个2*2的,且初始为0的二维数组。间接定义

  1. a=[[0 for x in range(10)] for y in range(10)]  

 

这里Python数组定义了10*10初始为0的二维数组。后来,我在网上找到了更简单的字义二维数组的方法:

  1. b = [[0]*10]*10 

定义10*10初始为0的二维数组。与

  1. a=[[0 for x in range(10)] for y in range(10)]  
  2.  

 

比较: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)]有同样的效果,Python数组 而没有上面相同引用的问题,估计数组c的定义时是值类型相乘,而前面b的用类型的相乘,因为一维数组是一个引用。

【编辑推荐】

  1. python操作函数把arg以string类型表示简介
  2. Python函数在实际操作中获取帮助的方案
  3. Python字符串中的两个解码与解码函数详解
  4. python操作函数把arg以string类型表示简介
  5. Python编程语言中调用Matlab绘制保存数据的方案
责任编辑:佚名 来源: 电子产品世界
相关推荐

2010-03-16 18:59:47

Python模块

2010-03-17 18:21:26

Python数据结构

2010-03-17 12:37:51

Python定时器

2010-03-19 15:16:11

Python代码

2010-03-17 10:01:12

Python安装

2020-09-28 08:11:14

JavaScript数据

2010-03-17 15:17:19

Python矩阵转置

2023-03-28 07:44:23

数据结构数组

2010-03-23 14:54:27

Python目录文件

2010-03-18 10:45:33

Python Djan

2010-03-17 16:27:39

Python矩阵转置

2010-03-16 10:00:37

Python函数

2010-03-16 10:58:35

Python字符串

2010-03-18 10:28:00

Python整理乱码

2010-03-22 19:11:55

Python连接

2010-03-22 15:58:08

Python模块功能

2010-03-09 19:07:01

Python语法

2010-03-26 09:06:06

Python连接数据库

2010-03-16 12:39:09

python for

2010-03-23 17:53:46

Python递归文件
点赞
收藏

51CTO技术栈公众号