`

Python 二维数组

 
阅读更多

Python数组的应用中在实际编程中是一个非常重要的应用技术,作为Python编程人员来说,必须要熟练的掌握这方面的所有应用技巧。那么,接下来,我们将会通过对Python二维数组的理解来为大家解读这方面的知识。

Python中没有数组的数据结构,但列表很像数组,如:

 

  1. 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,则

  1. a=[0forxinrange(0,1000)]

下面是Python二维数组的定义:

 

直接定义 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的Python二维数组。

与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二维数组赋值问题

    今天小编就为大家分享一篇解决Python二维数组赋值问题,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧

    python 二维数组90度旋转的方法

    今天小编就为大家分享一篇python 二维数组90度旋转的方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧

    Python numpy实现二维数组和一维数组拼接的方法

    2.numpy初始化二维数组 a = np.array([[1,2,3]]); b = np.array([[1],[2],[3]]); print a.shape//(1,3) print b.shape//(3,1) 注意(3,)和(3,1)的数组是不一样的,前者是一维数组,后者是二维数组。 拼接 ...

    Python二维数组实现求出3*3矩阵对角线元素的和示例

    程序分析:利用双重for循环控制输入二维数组,再将a[i][i]累加后输出。 def two_dimensionalArray(self): '二维数组实现求三阶矩阵的对角线元素之和' sum = 0 matrix = [[0, 1, 0], [0, 21, 0], [0, 12, 0]] ...

    Python实现二维数组输出为图片

    对于二维数组,img_mask [[ 0 0 0 ..., 7 7 7] [ 0 0 0 ..., 7 7 7] [ 0 0 0 ..., 7 7 7] ..., [266 266 266 ..., ...以上这篇Python实现二维数组输出为图片就是小编分享给大家的全部内容了,希望能给大家一个参

    Python 二维数组中的查找

    在一个二维数组中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否有该整数。 方法一: ...

    Python实现二维数组按照某行或列排序的方法【numpy lexsort】

    本文实例讲述了Python实现二维数组按照某行或列排序的方法。分享给大家供大家参考,具体如下: lexsort支持对数组按指定行或列的顺序排序;是间接排序,lexsort不修改原数组,返回索引。 (对应lexsort 一维数组的是...

    python 去除二维数组/二维列表中的重复行方法

    今天小编就为大家分享一篇python 去除二维数组/二维列表中的重复行方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧

    python将三维数组展开成二维数组的实现

    这篇文章尝试用“曲线救国”的方法来解决二维数组叠加成三维数组的问题。 但天道有轮回,苍天绕过谁。好不容易把数组叠加在一块儿了,新的需求又出现了:将三维数组展开成二维数组。有借有还,再借不难。今天就来...

    基于python 二维数组及画图的实例详解

    下面小编就为大家分享一篇基于python 二维数组及画图的实例详解,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧

    python numpy 一维数组转变为多维数组的实例

    如下所示: import numpy ... 您可能感兴趣的文章:python二维列表一维列表的互相转换实例Python的numpy库中将矩阵转换为列表等函数的方法python的dataframe转换为多维矩阵的方法Python嵌套列表转一维的方法(压

    python 使用pandas的dataframe一维数组和二维数组分别按行写入csv或excel

    pandas写入excel 两种 一个是一行一行的写(本身写入时列)另一种是写入二维数组。 1.一行一行的写 i=1 loujian=2 dat=[i,loujian,ll,load_idx,bilv,eventype]#一个变量 print (dat) test = pd.DataFrame(data=dat)....

    Python reshape的用法及多个二维数组合并为三维数组的实例

    reshape(shape) : 不改变数组元素,返回一个shape形状的数组,原数组不变。是对每行元素进行处理 resize(shape) : 与.reshape()功能一致,但修改原数组 In [1]: a = np.arange(20) #原数组不变 In [2]: a.reshape...

Global site tag (gtag.js) - Google Analytics