Python如何创建二维数组和初始化
一、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如何创建二维数组和初始化相关推荐
- python如何创建二维数组
关于python中的二维数组,主要有list和numpy.array两种.好吧,其实还有matrices,但它必须是2维的,而numpy arrays (ndarrays) 可以是多维的. 两者可以相 ...
- python构建二维数组_Python中创建二维数组
二维数组 二维数组本质上是以数组作为数组元素的数组,即"数组的数组",类型说明符 数组名[常量表达式][常量表达式].二维数组又称为矩阵,行列数相等的矩阵称为方阵.对称矩阵a[i] ...
- python创建一个n*m的二维数组_Python中创建二维数组
Python中创建二维数组 二维数组 二维数组本质上是以数组作为数组元素的数组,即"数组的数组",类型说明符 数组名[常量表达式][常量表达式].二维数组又称为矩阵,行列数相等的矩 ...
- Python创建二维数组(关于list的一个小坑)
0.目录 1.遇到的问题 2.创建二维数组的办法 3.1 直接创建法 3.2 列表生成式法 3.3 使用模块numpy创建 1.遇到的问题 今天写Python代码的时候遇到了一个大坑,差点就耽误我交作 ...
- python 二维数组 长度_Python创建二维数组的正确姿势
↑↑↑点击上方"蓝字",关注"极客猴" 如果你喜欢极客猴,可以把我置顶或加为星标 题图:by watercolor.illustrations from Ins ...
- python 随机获取数组元素_Python创建二维数组的正确姿势
List (列表)是 Python 中最基本的数据结构.在用法上,它有点类似数组,因为每个列表都有一个下标,下标从 0 开始.因此,我们可以使用 list[1] 来获取下标对应的值.如果我们深入下列表 ...
- python 创建二维list,Python创建二维数组(关于list的一个小坑)
遇到的问题 今天写Python代码的时候遇到了一个大坑,问题是这样的,我需要创建一个二维数组,如下: 输出结果如下: 是不是看起来没有一点问题? 一开始我也是这么觉得的,以为是我其他地方用错了什么函数 ...
- python创建矩阵_Python创建二维数组的正确姿势
List (列表)是 Python 中最基本的数据结构.在用法上,它有点类似数组,因为每个列表都有一个下标,下标从 0 开始.因此,我们可以使用 list[1] 来获取下标对应的值.如果我们深入下列表 ...
- 创建二维数组 以及 python中[0 ]* n与[0 for _ in range(n)]的区别与联系
一.浅拷贝于深拷贝 关于浅拷贝于深拷贝:Python 的深拷贝和浅拷贝 直接赋值:其实就是对象的引用(别名). 浅拷贝(copy):拷贝父对象,不会拷贝对象的内部的子对象. 深拷贝(deepcopy) ...
最新文章
- 第59件事 运营驱动产品调优案例
- C# WinForm获取程序所在路径方法
- python的opencv 车牌识别 开源_毕节进出口车牌识别系统怎么样
- android one x2,HTC One X 深度OS Android4.1.2 大气不失稳重 雍容华贵 流畅运行
- it精英挑战赛的规则 校区内部评选 2020
- html毕业作品,基于HTML制作的闲置交易网站设计毕业论文+开题报告+Html静态网页源码...
- 基于 snowNLP的微博评论数据情感分析
- 以太网误码率测试软件,最完美的PAM4标准通信数据测试方案大全
- 数据库备份的方式有哪些
- 907计算机专业基础与408相比,2018计算机考研专业课精选练习题(4)
- 视频黑屏检测,时长检测 blackdetect
- 原生HTML:img 相关属性详解(alt属性,onerror事件,以及其他基本属性),css中的object-fit
- openGauss:(5)openGauss简介
- 真正的自由是节制欲望自律简朴地去生活
- 零线和地线的区别,示波器如何测量市电?
- 大数据职业发展规划和技能
- 报错:TestEngine with ID ‘junit-jupiter‘ failed to discover tests
- 论文研究记录----数据整理
- 雄关漫道真如铁|MAC安装Maven并配置环境变量
- 恶意软件分析诀窍与工具箱——对抗“流氓”软件的技术与利器