码迷,mamicode.com
首页 > 编程语言 > 详细

在Python中建立N维数组并赋初值

时间:2015-09-09 00:51:18      阅读:779      评论:0      收藏:0      [点我收藏+]

标签:

在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的函数:

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

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

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

def Get_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<m:
            result=[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维数组并赋初值

标签:

原文地址:http://www.cnblogs.com/ArsenalfanInECNU/p/4793354.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!