一、Python用什么表达二维数组

严格意义上说,Python中并没有数组的概念,Python中表达一组数据有多种形式,例如list,tuple,set等数据结构都可以表达一组数,并且这组数也没有C和C++中数组的的同质限制,这些数可以是任何一种数据类型。

以list为例(list又叫列表),要想实现一个所谓的二维数组(有行有列),可以使用嵌套list来实现。例如:要想实现一个如

的一个2行3列的二维数组,可以使用如下嵌套list来表达:

L = [[1, 2, 3], [4, 5, 6]]

二、如何初始化一个二维数组

在很多应用场景下,二维数组的数据是从键盘或者其他什么文件中输入的。这时就迫切需要初始化一个二维数组,等待数据的录入。

2.1 利用list自身进行构造(注意,此方法并不能构造完全灵活的二维数组,不建议采用)

list自身的构造函数形式多种多样。想构建一个二维数组自然并非难事。

例如,想要构建一个m行n列的二维数组。可以这样初始化。

L = [[] * n] * m

展示结果如下:

如果想要给一个初始化的值,可以写成:

L = [[0] * n] * m

则:

但是,由于此方法构造的二维数组是对[]*n引用了m次,更改其中一行的值会导致每行的值都被更改。所以,并不是一个可以完全操控到列粒度的二维数组。应用背景极其狭窄,不推荐使用。

m = 2
n = 3
L = [[3] * n] * m #构造二维数组
print(L)
L[0][1] = 5 #修改某一个值,其他行的对应列值也会被修改。
print(L)

得到的结果为:

2.2 利用传统的list的append方法,通过迭代构造

m = 2 #2行
n = 3 #3列l = 0 #行从0开始
mat = [] # 定义一个二维数组mat
while l < m:r = 0 #列从0开始line = [] #line存储每一行数据while r < n:line.append(0) #装载行数据r = r + 1mat.append(line) #按行装载二维数组l = l + 1
print(mat)

得到的结果依然为:

2.3利用numpy包构建二维数组(矩阵)

可以使用numpy包来构建二维数组,例如要构建一个m行n列的初始化为0二维数组,可以编写程序:

m = 3
n = 4
mat = np.zeros((m, n))print(mat)

结果为:

类似的:

构建一个m行n列的初始化为0二维数组

m = 3
n = 4
mat = np.ones((m, n))print(mat)

构建一个m行n列的初始化为0-1随机数的二维数组:

m = 3
n = 4
mat = np.random.random((m, n))print(mat)

构建一个m行n列的初始化为1-11步长为2的二维数组:

m = 2
n = 3
mat = np.arange(1, 12, 2).reshape(m, n)print(mat)

结果是:

构建一个m行n列的空的二维数组:

m = 2
n = 3
mat = np.empty((m, n))print(mat)

但注意,结果并不为空,而是一些极小的浮点数,并没有实际意义。

三、操作二维数组

如果你用的是list,那么操作二维数组和其他语言没什么区别。也是通过方括号下标来获取单个数据,也是通过for循环迭代来遍历二维数组。这里不再赘述。

看懂了就点个赞吧。

Python如何创建二维数组和初始化相关推荐

  1. python如何创建二维数组

    关于python中的二维数组,主要有list和numpy.array两种.好吧,其实还有matrices,但它必须是2维的,而numpy arrays (ndarrays) 可以是多维的. 两者可以相 ...

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

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

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

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

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

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

  5. python 二维数组 长度_Python创建二维数组的正确姿势

    ↑↑↑点击上方"蓝字",关注"极客猴" 如果你喜欢极客猴,可以把我置顶或加为星标 题图:by watercolor.illustrations from Ins ...

  6. python 随机获取数组元素_Python创建二维数组的正确姿势

    List (列表)是 Python 中最基本的数据结构.在用法上,它有点类似数组,因为每个列表都有一个下标,下标从 0 开始.因此,我们可以使用 list[1] 来获取下标对应的值.如果我们深入下列表 ...

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

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

  8. python创建矩阵_Python创建二维数组的正确姿势

    List (列表)是 Python 中最基本的数据结构.在用法上,它有点类似数组,因为每个列表都有一个下标,下标从 0 开始.因此,我们可以使用 list[1] 来获取下标对应的值.如果我们深入下列表 ...

  9. 创建二维数组 以及 python中[0 ]* n与[0 for _ in range(n)]的区别与联系

    一.浅拷贝于深拷贝 关于浅拷贝于深拷贝:Python 的深拷贝和浅拷贝 直接赋值:其实就是对象的引用(别名). 浅拷贝(copy):拷贝父对象,不会拷贝对象的内部的子对象. 深拷贝(deepcopy) ...

最新文章

  1. 第59件事 运营驱动产品调优案例
  2. C# WinForm获取程序所在路径方法
  3. python的opencv 车牌识别 开源_毕节进出口车牌识别系统怎么样
  4. android one x2,HTC One X 深度OS Android4.1.2 大气不失稳重 雍容华贵 流畅运行
  5. it精英挑战赛的规则 校区内部评选 2020
  6. html毕业作品,基于HTML制作的闲置交易网站设计毕业论文+开题报告+Html静态网页源码...
  7. 基于 snowNLP的微博评论数据情感分析
  8. 以太网误码率测试软件,最完美的PAM4标准通信数据测试方案大全
  9. 数据库备份的方式有哪些
  10. 907计算机专业基础与408相比,2018计算机考研专业课精选练习题(4)
  11. 视频黑屏检测,时长检测 blackdetect
  12. 原生HTML:img 相关属性详解(alt属性,onerror事件,以及其他基本属性),css中的object-fit
  13. openGauss:(5)openGauss简介
  14. 真正的自由是节制欲望自律简朴地去生活
  15. 零线和地线的区别,示波器如何测量市电?
  16. 大数据职业发展规划和技能
  17. 报错:TestEngine with ID ‘junit-jupiter‘ failed to discover tests
  18. 论文研究记录----数据整理
  19. 雄关漫道真如铁|MAC安装Maven并配置环境变量
  20. 恶意软件分析诀窍与工具箱——对抗“流氓”软件的技术与利器

热门文章

  1. 浪潮人机大战引发热议 人工智能有望战胜地震
  2. js ajax 点击遮罩层,jQuery弹出遮罩层效果完整示例
  3. 专业论文查重网站(含免费的)
  4. 美国流行乐女歌手凯蒂·佩里将发布NFT
  5. Markdown修改字体颜色
  6. 【C++】C语言的malloc/free和C++的new/delete的异同
  7. sum 开窗函数 oracle,oracle开窗函数案例详解
  8. PS另存为web格式,找不到路径
  9. 11行Python制作定向越野发令器
  10. 笔记本散热器什么牌子比较好