python创建长度为n的数组_在Python中建立N维数组并赋初值
在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维数组并赋初值相关推荐
- floatmap 二维数组_用J中的多维数组进行Arrays.fill
用J中的多维数组进行Arrays.fill 如何在不使用循环的情况下用Java填充多维数组? 我试过了: double[][] arr = new double[20][4]; Arrays.fill ...
- Python 学习系列(4) 在Python中建立N维数组并赋初值
在Python中,由于不像C++/Java这样的语言可以方便的用a[i][j]=0的方式,建立二维数组并赋初值,所以需要一个相对巧妙的方法. 可以用列表解析的方式,eg: >>> m ...
- java 数组存入数据库_Java中关于二维数组的理解与使用
今天练习的时候遇到一个题目,题目需求是这样的: 需求说明: 根据3个班各5名学生某门课程的成绩,正确使用二维数组计算如图所示3个班各自的总成绩 分析: 要实现这个功能需要存储两个信息: 一个是班级信息 ...
- 数组中查找並返回数组_剑指 Offer 04. 二维数组中的查找
1. 题目 力扣leetcode-cn.com 2. 描述 在一个 n * m 的二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序.请完成一个函数,输入这样的一个二 ...
- python创建长度为20的列表_如何在python中创建固定大小列表?
小编典典 (tl;博士:您问题的确切答案是numpy.empty或numpy.empty_like,但您可能不在乎,可以摆脱使用的困扰myList = [None]*10000.) 简单的方法 您可以 ...
- python创建多个文件夹合并_在python中如何将多个文件夹合并到一个文件夹中?
我需要将多个文件夹合并到一个文件夹中,并考虑到它们基于时间的顺序,为此我尝试了:import os import shutil DestFolder = 'C:\\Users\\user\\Folde ...
- 二维数组在c语言中的作用,C语言中的二维数组
1.二维数组的定义和引用 一. 数据类型 数组名[常量表达式1][常量表达式2]; (1)假如有个二维数组array[n][m],则行下标的取值范围0~n-1 (2)列下标的取值范围0~m-1 (3) ...
- c语言字符串二维数组的动态分配应,C语言中动态分配二维数组复习过程.doc
C语言中动态分配二维数组复习过程.doc C语言中动态分配二维数组在C中动态分配内存的,对于单个变量,字符串,一维数组等,都是很容易的.C中动态分配二维数组的方法,很少有C语言书中描述,我查找了有的C ...
- c++ 二维数组_C|数形结合理解数组指针、指针数组、一级指针来遍历二维数组
二维数组本质是也是线性存储的一维数组,各元素都是相对于基地址(首地址)的偏移,只是逻辑上的维度区分而已.或者可以理解为数组的数组,也就是说,n维数组的元素是一个n-1维数组. 需要注意的是,多维数组名 ...
最新文章
- 使用JPA进行Update操作 @Query注解的用法,JPL
- python绘制直方图-python matplotlib库直方图绘制详解
- java多线程11.非阻塞同步机制
- python的flask实现接口_Flask快速实现简单python接口
- java chain_java 8中 predicate chain的使用
- 怎样把间隔的几个commit整理成1个呢?
- 51Testing第五期电子杂志下载
- python1e2_Python-1 数据类型
- 利用Python制作微信跳一跳外挂,又来带你装一波X!
- java中加权滤波怎么用_方向加权中值滤波算法-The Directional Medial Filtering with Weights...
- 【java期末复习题】第15章 JDBC数据库编程
- Android Layout 布局属性全解
- java 12进制转换_Java进制转换
- 电力猫服务器的网页,电力猫方案完美解决家庭网络布局
- Linux Debian10 如何安装jemalloc 以及 Newer version of jemalloc required 问题
- 编译原理复习总结及思维导图
- 网易有道 ASR 团队斩获 Interspeech 2021 算法竞赛两项冠军
- OCR文字识别工具准确获取图片文字
- php录音功能,关于录音功能的详细介绍
- 服装企业在实践中探索