在Python中,由于不像C++/Java这样的语言可以方便的用a[i][j]=0的方式,建立二维数组并赋初值,所以需要一个相对巧妙的方法。

可以用列表解析的方式,eg:

>>> mat=[[0 for i in range(5)] for j in range(5)]>>>mat

[[0, 0, 0, 0, 0], [0, 0, 0, 0, 0], [0, 0, 0, 0, 0], [0, 0, 0, 0, 0], [0, 0, 0, 0, 0]]

这样就建立了一个二维5X5的数组并把初值设置为0.

下面给一个建立MXN的二维数组,并把初值设为x的函数:

defGet_MXN_Array_initx(m,n,x):return [[x for i in range(m)] for j in range(n)]

如果要建立三维数组可以用类似的方式,以下是一个函数,建立多维的,每一维长度都可以指定,所有元素初始值为x的数组。

参数:m为整数,表示数组的维度;n为数组,储存每一维数组的长度

感谢dearchi指出下列代码中的错误,已改正。

原理:在使用低维数组生成高维数组的过程中,确实应当使用deepcopy复制低维数组,不然会导致高维数组中的每个元素实际上都是同一个低维数组,当有一个低维数组被修改,高维数组中的其他低维数组也跟着被修改了,即“牵一发而动全身”。详见dearchi的评论。

import copy

defGet_Mdimensions_NlengthArray_initValuex(m,n,x):if m!=len(n):print("Error!指定每一维数组的长度时出错")else:

result=[x for i in range(n[-1])]

dimensions_num=1

while dimensions_num

result=[copy.deepcopy(result) for i in range(n[-1-dimensions_num])]

dimensions_num+=1

return result

eg:我们创建一个2维,3X2,初始值为0的数组,各维度的长度以数组的形式传入参数n:

>>> Arr=Get_Mdimensions_NlengthArray_initValuex2(2,[3,2],0)>>>Arr

[[0, 0], [0, 0], [0, 0]]

当传入维度数组的长度与数组维度不匹配时:

>>> Arr=Get_Mdimensions_NlengthArray_initValuex2(2,[3,2,3],0)

Error!指定每一维数组的长度时出错

python创建长度为n的数组_在Python中建立N维数组并赋初值相关推荐

  1. floatmap 二维数组_用J中的多维数组进行Arrays.fill

    用J中的多维数组进行Arrays.fill 如何在不使用循环的情况下用Java填充多维数组? 我试过了: double[][] arr = new double[20][4]; Arrays.fill ...

  2. Python 学习系列(4) 在Python中建立N维数组并赋初值

    在Python中,由于不像C++/Java这样的语言可以方便的用a[i][j]=0的方式,建立二维数组并赋初值,所以需要一个相对巧妙的方法. 可以用列表解析的方式,eg: >>> m ...

  3. java 数组存入数据库_Java中关于二维数组的理解与使用

    今天练习的时候遇到一个题目,题目需求是这样的: 需求说明: 根据3个班各5名学生某门课程的成绩,正确使用二维数组计算如图所示3个班各自的总成绩 分析: 要实现这个功能需要存储两个信息: 一个是班级信息 ...

  4. 数组中查找並返回数组_剑指 Offer 04. 二维数组中的查找

    1. 题目 力扣​leetcode-cn.com 2. 描述 在一个 n * m 的二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序.请完成一个函数,输入这样的一个二 ...

  5. python创建长度为20的列表_如何在python中创建固定大小列表?

    小编典典 (tl;博士:您问题的确切答案是numpy.empty或numpy.empty_like,但您可能不在乎,可以摆脱使用的困扰myList = [None]*10000.) 简单的方法 您可以 ...

  6. python创建多个文件夹合并_在python中如何将多个文件夹合并到一个文件夹中?

    我需要将多个文件夹合并到一个文件夹中,并考虑到它们基于时间的顺序,为此我尝试了:import os import shutil DestFolder = 'C:\\Users\\user\\Folde ...

  7. 二维数组在c语言中的作用,C语言中的二维数组

    1.二维数组的定义和引用 一. 数据类型 数组名[常量表达式1][常量表达式2]; (1)假如有个二维数组array[n][m],则行下标的取值范围0~n-1 (2)列下标的取值范围0~m-1 (3) ...

  8. c语言字符串二维数组的动态分配应,C语言中动态分配二维数组复习过程.doc

    C语言中动态分配二维数组复习过程.doc C语言中动态分配二维数组在C中动态分配内存的,对于单个变量,字符串,一维数组等,都是很容易的.C中动态分配二维数组的方法,很少有C语言书中描述,我查找了有的C ...

  9. c++ 二维数组_C|数形结合理解数组指针、指针数组、一级指针来遍历二维数组

    二维数组本质是也是线性存储的一维数组,各元素都是相对于基地址(首地址)的偏移,只是逻辑上的维度区分而已.或者可以理解为数组的数组,也就是说,n维数组的元素是一个n-1维数组. 需要注意的是,多维数组名 ...

最新文章

  1. 使用JPA进行Update操作 @Query注解的用法,JPL
  2. python绘制直方图-python matplotlib库直方图绘制详解
  3. java多线程11.非阻塞同步机制
  4. python的flask实现接口_Flask快速实现简单python接口
  5. java chain_java 8中 predicate chain的使用
  6. 怎样把间隔的几个commit整理成1个呢?
  7. 51Testing第五期电子杂志下载
  8. python1e2_Python-1 数据类型
  9. 利用Python制作微信跳一跳外挂,又来带你装一波X!
  10. java中加权滤波怎么用_方向加权中值滤波算法-The Directional Medial Filtering with Weights...
  11. 【java期末复习题】第15章 JDBC数据库编程
  12. Android Layout 布局属性全解
  13. java 12进制转换_Java进制转换
  14. 电力猫服务器的网页,电力猫方案完美解决家庭网络布局
  15. Linux Debian10 如何安装jemalloc 以及 Newer version of jemalloc required 问题
  16. 编译原理复习总结及思维导图
  17. 网易有道 ASR 团队斩获 Interspeech 2021 算法竞赛两项冠军
  18. OCR文字识别工具准确获取图片文字
  19. php录音功能,关于录音功能的详细介绍
  20. 服装企业在实践中探索

热门文章

  1. 回拨系统服务器,CISCO接入服务器回拨功能的实现
  2. 12306 抢票项目霸榜 GitHub,标星即将破万
  3. 利用python自定义完整版迭代器
  4. android stackview,Android StackView 使用示例
  5. 文本对抗攻击入坑宝典
  6. 线性代数应该这样讲(四)-奇异值分解与主成分分析
  7. React Native工程中TSLint静态检查工具的探索之路
  8. 论文浅尝 | 混合注意力原型网络的含噪音少样本的关系分类
  9. 二叉树前序遍历、中序遍历、后序遍历手稿
  10. Android官方开发文档Training系列课程中文版:管理系统UI之变暗系统条