#Python# 二维数组的定义、使用的几种方法

  • 通常的困扰
  • 1、先介绍最简单的一种方式
  • 2、再介绍最常见的一种方式
  • 3、最后介绍最暴力直观的一种方式

通常的困扰

之前对Python里面创建、使用二维数组也很懵,于是也上网查了一些讲解,也发现一些类似的问题,大多数存在着 以为定义正确了二维数组,但修改数据的时候,发现数据经常一起串改。如:

 b=[[0,0,0]]*3b[0][1]=1    #这里因为初始[0,0,0]可以这样写数据,如果初始空数组则不能print(b)b[1].append(3)print(b)

输出:

[[0, 1, 0], [0, 1, 0], [0, 1, 0]]
[[0, 1, 0, 3], [0, 1, 0, 3], [0, 1, 0, 3]]

因为像这种*3操作,其数据在三个数组里会被一起改掉。

1、先介绍最简单的一种方式

因为Python的数组本身就是动态可变的,同时提供append()函数,该函数不仅可以在一个数组后面添加数字,也可以在后面任意添加数组,如:

 c = []c.append([1,2,3,4])c.append([5,6,7,8])c.append(9)print(c)

最后输出为:
[[1, 2, 3, 4], [5, 6, 7, 8], 9]
该种方法在 已建立 了的数组基础上可以通过c[ i ][ j ]的方式对数据修改和读取:

 c[0][1]=10

输出为:
[[1, 10, 3, 4], [5, 6, 7, 8], 9]

2、再介绍最常见的一种方式

 b=[[] for i in range(4)]b[0].append(5)b[1].append(6)print(b)

最后输出为:
[[5], [6], [ ], [ ]]
该种方法在最大的好处在于通过b[ i ]来存储二维数据,更加直观和清晰。但需先已知数据行数,这里是四行数据。
但一旦对数据没有通过append()方式添加,而是在位置上直接赋值如:

 b=[[] for i in range(4)]b[0]=5b[1].append(6)print(b)

最后输出为:
[5, [6], [ ], [ ]]
看输出就知道对于b[1] 以后就只能是一个数字5,不能再在此位置存储数据。

3、最后介绍最暴力直观的一种方式

 a=[[[]for i in range(3)]for i in range(4)]

最后输出为:
[[[], [], []], [[], [], []], [[], [], []], [[], [], []]]
显然建立了四行三列的矩阵,且每个位置上也是数组的形式,如果比较习惯于通过a[i][j]这样的方式来存储读取数据,这种方式很适合,同时也可以在 未建立 数据(即还没有实际数据)的基础上,也能通过c[ i ][ j ]的方式存储修改数据。弊端是要先知道行列数。如果完全了解上面两种方式的话,这种建立二维数组方式感觉很没必要。

 a=[[[]for i in range(3)]for i in range(4)]a[0][0]=1a[0][1].append(2)print(a)

最后输出为:
[[1, [2], []], [[], [], []], [[], [], []], [[], [], []]]
这里我们就可以看到直接赋值和append()函数的差别。

#Python# 二维数组的定义、使用的几种方法相关推荐

  1. python读取二维数组的行列数_Python获取二维数组的行列数的2种方法

    Python获取二维数组的行列数的2种方法 这篇文章主要介绍了Python获取二维数组的行列数的2种方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考 ...

  2. 二维数组赋初值你会几种方法?

    二维数组赋初值你会几种方法 文章目录 方法一 方法二 方法三 方法四 方法五 方法一 分行给二维数组赋初值: int arr[3][4]={{1,2,3,4},{5,6,7,8},{9,10,11,1 ...

  3. Python 二维数组

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

  4. python二维数组操作_Python二维数组应用与操作

    课课家将会在这里为大家详细的介绍一下Python二维数组的相关应用方法以及定义方式,相信朋友们可以从中学习到更多的知识. Python数组的应用中在实际编程中是一个非常重要的应用技术,作为Python ...

  5. python定义二维数组_二维数组的定义、初始化和输出,C语言二维数组详解

    本节学习二维数组.二维数组与一维数组相似,但是用法上要比一维数组复杂一点.后面的编程中,二维数组用得很少,因为二维数组的本质就是一维数组,只不过形式上是二维的.能用二维数组解决的问题用一维数组也能解决 ...

  6. python给矩阵赋值_解决Python二维数组赋值问题

    解决Python二维数组赋值问题 当我们采用s=[[0]*3]*2初始化一个数组,然后对s[0][0]进行赋值,改变的是第一列所有的值.因为用s = [[0]*3]*2 初始化数组,他表示的是指向这个 ...

  7. python二维数组去重_np.unique()对一维和二维数组去重

    一维数组 对一维数组或列表,unique()函数去除其中重复元素,并按元素大小返回一个新的无重复元组或列表. import numpy as np A = [1, 2, 2, 5,3, 4, 3] a ...

  8. JAVA中一维数组的作用,JAVA中一维数组和二维数组的定义

    在java中数组被看成是一个对象 在定义数组时,有两种定义方法:int[] a 和int a[]:第二种是C/C++对数组定义方式,对于JAVA建议采用第一种定义方式. 总的原则:任何对象在被调用之前 ...

  9. python画二维散点图-基于python 二维数组及画图的实例详解

    1.二维数组取值 注:不管是二维数组,还是一维数组,数组里的数据类型要一模一样,即若是数值型,全为数值型 #二维数组 import numpy as np list1=[[1.73,1.68,1.71 ...

最新文章

  1. SpringMVC访问静态资源
  2. 算法----- 下一个更大元素 I
  3. pyspark 计算 皮尔逊相关系数
  4. SAP在中国的发展和现状(培训公司欺诈推广)
  5. html制作百度首页的图片不显示,html实现像百度的首页效果一样的背景图(代码)...
  6. Matlab | Matlab从入门到放弃(9)——浮点数取整
  7. 在多线程中使用spring的bean
  8. CContextMenuManager上下文菜单管理器以及为菜单添加图标
  9. python十大装b语法_Python 十大语法
  10. Java创建Timestamp的几种方式
  11. MVC模式利用xib文件定制collectionCell
  12. 墨天轮国产数据库沙龙 | 胡彦军:华为GaussDB迁移工具解密
  13. 编辑PDF文件时如何提取页面
  14. 【数据库】编写存储过程
  15. DSPE-PEG2K-MAL|磷脂聚乙二醇马来酰亚胺(DSPE-PEG-MAL)|二硬脂酰基磷脂酰乙醇胺 聚乙二醇 马来酰亚胺,齐岳生物
  16. 分数的加减乘除(运算符重载)
  17. 「实验性讲稿」载谭 Binomial Sums 详解
  18. 一文学会招投标数据采集分析
  19. Mixly第32课~第34课,课程学习笔记 | Mixly米思齐纯干货系列
  20. MySQL+HeidiSQL Windows端安装使用说明

热门文章

  1. 外设中断产生 + CPU响应中断并返回的控制流程
  2. 硬件基础学习笔记(四)二极管
  3. 大数据Java基础之常用类
  4. 【CloudXNS教您几招】如何让多ip域名配置游刃有余?(3)
  5. eclipse卸载已经安装的插件
  6. 北京供销大数据集团荣获“2016-2017年度数据中心优秀创新企业奖”
  7. 算法笔记入门篇-多项式求和
  8. matlab心形图c语言,MATLAB心形图.doc
  9. 看过来,如何用Python 一行代码能实现丧心病狂的功能
  10. 有百度就够了?你已经8年没用过搜索引擎了,百度“滑嫩”打脸啪啪啪!