Python如何创建二维数组和初始化

这篇具有很好参考价值的文章主要介绍了Python如何创建二维数组和初始化。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

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

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

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

python二维数组,Python程序设计教程,开发语言,python

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

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

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

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

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

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

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

L = [[] * n] * m

         展示结果如下:

python二维数组,Python程序设计教程,开发语言,python

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

L = [[0] * n] * m

则:

python二维数组,Python程序设计教程,开发语言,python

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

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

得到的结果为:

python二维数组,Python程序设计教程,开发语言,python

 

 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 + 1
    mat.append(line) #按行装载二维数组
    l = l + 1
print(mat)

得到的结果依然为:

python二维数组,Python程序设计教程,开发语言,python

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

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

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

print(mat)

结果为:

python二维数组,Python程序设计教程,开发语言,python

        类似的:

构建一个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)

结果是:

python二维数组,Python程序设计教程,开发语言,python

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

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

print(mat)

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

三、操作二维数组

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

看懂了就点个赞吧。文章来源地址https://www.toymoban.com/news/detail-830962.html

到了这里,关于Python如何创建二维数组和初始化的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • MATLAB中怎样初始化(创建)二维、三维、四维以及多维矩阵,各维度的索引顺序是怎样的?

    在MATLAB中初始化一个二维矩阵是很容易的,我们既可以直接把矩阵的元素值写出,比如下面这样: 也可以直接用函数ones()、zeros()、rand()等函数初始化一个全1或全0或均匀随机分布等的矩阵,然后再对其中的元素进行访问赋值,比如下面这样: 从上面的示例中我们可以看出,

    2024年01月17日
    浏览(34)
  • 【Java基础教程】(八)面向对象篇 · 第二讲:Java 数组全面解析——动态与静态初始化、二维数组、方法参数传递、排序与转置、对象数组、操作API~

    掌握数组的动态及静态创建方式、使用及特征; 掌握引用类型数据的特征; 掌握数组的排序、转置操作; 数组可以将多个变量进行统一的命名,这样相同类型的元素就可以按照一定的顺序进行组合排列 。在 Java中,数组属于引用类型数据,所以在数组的操作过程中,也一定

    2024年02月13日
    浏览(35)
  • 【源码解析】聊聊SpringBean是如何初始化和创建

    我们知道通过类进行修复不同的属性,比如单例、原型等,而具体的流程是怎么样的呢,这一篇我们开始从源码的视角分析以下。 在刷新容器中有一个方法,其实就是 Bean创建的过程。 而BeanFactory中 preInstantiateSingletons是初始化所有的bean对象的核心流程。 而这里通过去遍历所

    2024年02月05日
    浏览(32)
  • 如何创建 Xilinx BRAM 或 ROM 初始化文件(.COE)并实现初始化数据在 FPGA 上的载入

    如何创建 Xilinx BRAM 或 ROM 初始化文件(.COE)并实现初始化数据在 FPGA 上的载入 在 FPGA 开发中,初始化数据是一个非常重要的内容,它决定了电路从上电开始的初始状态,对于保证正确性和可靠性有着至关重要的作用。其中,BRAM(Block RAM)和 ROM(Read-Only Memory)是两种常见的

    2024年02月09日
    浏览(30)
  • gitee上创建新仓库如何clone到本地,并初始化项目

    目录 一、克隆 方法一 方法二 二、初始化项目 构建基本框架 自动生成代码  由于github速度较慢,这里我们使用gitee。我们在gitee上面创建一个仓库,然后我们可以通过ideal直接克隆下来,仓库设置如下 接着使用ideal将项目克隆下来,首先复制项目的地址 打开ideal,选择文件

    2024年02月05日
    浏览(44)
  • C++笔记之初始化二维矩阵的方法

    —— 2023年5月20日 上海 code review!

    2024年02月04日
    浏览(37)
  • Matlab和Python的初始化内存开销

    Matlab矩阵初始化: A=zeros(10000,10000); A=zeros(20000,20000); A=zeros(30000,30000); 错误使用 zeros 请求的 30000x30000 (6.7GB)数组超过预设的最大数组大小。创建大于此限制的数组可能需要较长时间,并且会导致 MATLAB 无响应。有关详细信息,请参阅 array size limit 或预设面板。 维数为30000及以上

    2024年02月05日
    浏览(32)
  • 数组初始化

    C语言中,数组初始化的方式主要有三种: 1、声明时,使用 {0} 初始化; 2、使用memset; 3、用for循环赋值。 那么,这三种方法的原理以及效率如何呢? 请看下面的测试代码: #define ARRAY_SIZE_MAX  (1*1024*1024)  void function1()  {      char array[ARRAY_SIZE_MAX] = {0};  //声明时使用{0}初始

    2024年02月14日
    浏览(42)
  • 17 数组动态初始化

            动态初始化:初始化时只指定数组长度,由系统为数组分配初始值。         格式:数据类型[] 数组名 = new 数据类型[数组长度]         实验结果:   

    2024年02月16日
    浏览(31)
  • 数组练习题,数组的动态初始化

    定义一个数组,求和 定义一个数组,统计数组里面一共有多少能够被3 整除的数字: 定义一整数类型数组,如果该数字是奇数,则将当前数字扩大两倍,如果是偶数,则将该数字变成该数字的1/2. 一个循环尽量只做一件事情,虽然把打印写的同一个循环里面可以,结果一样,

    2024年02月15日
    浏览(38)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包