#Python# 二维数组的定义、使用的几种方法
通常的困扰
1、先介绍最简单的一种方式
2、再介绍最常见的一种方式
3、最后介绍最暴力直观的一种方式
通常的困扰
之前对Python里面创建、使用二维数组也很懵,于是也上网查了一些讲解,也发现一些类似的问题,大多数存在着 以为定义正确了二维数组,但修改数据的时候,发现数据经常一起串改。如:

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

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

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

b=[[] for i in range(4)]
    b[0]=5
    b[1].append(6)
    print(b)
1
2
3
4
最后输出为:
[5, [6], [ ], [ ]]
看输出就知道对于b[1] 以后就只能是一个数字5,不能再在此位置存储数据。

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

a=[[[]for i in range(3)]for i in range(4)]
    a[0][0]=1
    a[0][1].append(2)
    print(a)
1
2
3
4
最后输出为:
[[1, [2], []], [[], [], []], [[], [], []], [[], [], []]]
这里我们就可以看到直接赋值和append()函数的差别。
————————————————
版权声明:本文为CSDN博主「锌录」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/qq_39729672/article/details/90266122

python创建二维数组方法相关推荐

  1. Python创建二维数组(关于list的一个小坑)

    0.目录 1.遇到的问题 2.创建二维数组的办法 3.1 直接创建法 3.2 列表生成式法 3.3 使用模块numpy创建 1.遇到的问题 今天写Python代码的时候遇到了一个大坑,差点就耽误我交作 ...

  2. python 创建二维list,Python创建二维数组(关于list的一个小坑)

    遇到的问题 今天写Python代码的时候遇到了一个大坑,问题是这样的,我需要创建一个二维数组,如下: 输出结果如下: 是不是看起来没有一点问题? 一开始我也是这么觉得的,以为是我其他地方用错了什么函数 ...

  3. python创建二维数组的方法_Python创建二维数组的正确姿势

    本文原创发布于微信公众号「极客猴」,欢迎关注第一时间获取更多原创分享 List (列表)是 Python 中最基本的数据结构.在用法上,它有点类似数组,因为每个列表都有一个下标,下标从 0 开始.因此 ...

  4. C++/java/python 创建二维数组

    创建了一个M×N的二维数组 C++ vector<vector<int>> ans(M,vector<int>(N, 0)); Java int[][] ans = ...

  5. python——创建二维数组

    方1: 直接list创建 dp = [[1 for i in range(5)] for j in range(4)] print(dp)#其中5代表列数,4代表行数 dp = [[11111] fo ...

  6. python输入二维数组_Python输入二维数组方法

    Python输入二维数组方法 前不久对于Python输入二维数组有些不解,今日成功尝试,记以备忘.这里以输入1-9,3*3矩阵为例 n=int(input()) line=[[0]*n]*n for ...

  7. python创建一个n*m的二维数组_Python中创建二维数组

    Python中创建二维数组 二维数组 二维数组本质上是以数组作为数组元素的数组,即"数组的数组",类型说明符 数组名[常量表达式][常量表达式].二维数组又称为矩阵,行列数相等的矩 ...

  8. c语言动态生成二维数组,C语言 动态创建二维数组

    /*C语言 如何动态创建二维数组 转化为一维数组申请数组,创建和释放都比较简单 */ #include #include #include #define RANK 10 #define COLUMN ...

  9. python构建二维数组_Python中创建二维数组

    二维数组 二维数组本质上是以数组作为数组元素的数组,即"数组的数组",类型说明符 数组名[常量表达式][常量表达式].二维数组又称为矩阵,行列数相等的矩阵称为方阵.对称矩阵a[i] ...

最新文章

  1. 如何解决MySQL order by limit语句的分页数据重复问题?
  2. 【2013年总结】 向着IT前进
  3. 框架开发之Java注解的妙用
  4. numpy数据集练习
  5. Java中throw和throws的区别
  6. 浏览器缓存原理以及本地存储
  7. 自动化测试---Assert
  8. 【人工智能】深度学习自动构图研究报告
  9. 【Flink】Flink Remote Shuffle 开源:面向流批一体与云原生的 Shuffle 服务
  10. cgi web页面传入命令
  11. java异常机制throwable
  12. 飞思卡尔K60最小系统设计板方案
  13. ICC2(二)place —— congestion
  14. 免费谷歌云服务器,极简到手指南
  15. 本地Remix与私链节点相连
  16. ubuntu 17.04安装为知笔记
  17. web前端开发之CSS
  18. 2015——那年、匆匆
  19. idea高版本设置注入飘红(红色波浪线)
  20. java并查集_一个非常实用而且精妙的算法-并查集(java语言实现)

热门文章

  1. 计算机毕业设计JAVA河北水利电力学院体育运动会成绩管理系统mybatis+源码+调试部署+系统+数据库+lw
  2. npm ERR! Windows_NT 10.0.10586
  3. 字节 抖音电商后台开发日常实习 一二面面经(已凉)
  4. LFU (最不经常使用算法)缓存
  5. stm32的FreeRTOS移植
  6. 绝地求生自定义服务器租用,《绝地求生》开放自定义服务器不限号测试:可与小伙伴创建私密游戏房间...
  7. LCD 最强 — iPad Pro 2018 屏幕素质报告
  8. 神木林服务器未能,橘子洲神木林大佬斥巨资疯狂更新,传统法系再度征战武神坛!...
  9. JavaScript打开新链接
  10. EasyExcel动态导出多级表头