【Python】获取多维数组中元素数目(获取数组中点坐标的数量)

有一个坐标集合,我想要知道一共有多少个点(Point),但是似乎没有先成的工具来计算集合中点的数量,因此决定自己写一下,来计算数组中坐标的个数。

识别案例:

Points = [
[1,2],[3,4],
[[1,2],[1,2],[3,4]]
]

算法思路:

因为是为了计算总个数,需要不断对数组进行遍历,直到底部元素为单独的二维数组为止,因此,采用递归的方法,如果遍历到的元素满足单独的条件,那么总数+1;否则对这个数组的每一个子数组进行遍历。

Step 1:(多维数组中元素个数的计算)

def GetArrayNum(Array):
    ThisNum = 0
    if type(Array) == int or type(Array) == float:
        ThisNum = ThisNum + 1
        return ThisNum
    if len(Array) == 1:
        if type(Array[0]) == int or type(Array) == float:
            ThisNum = ThisNum + len(Array)
            return ThisNum
        if len(Array[0]) > 1:
            for i in range(0,len(Array[0])):
                ThisNum = ThisNum + GetArrayNum(Array[0][i])
            return ThisNum
    if len(Array) > 1:
        for i in range(0,len(Array)):
            ThisNum = ThisNum + GetArrayNum(Array[i])
        return ThisNum
            

测试

 Step 2:点坐标数目的计算

def GetCoordinateNum(Point):
    ThisCoordinateNum = 0
    if len(Point) == 2:
        if (type(Point[0])==int or type(Point[0])==float) and (type(Point[1])== int or type(Point[1])== float):
            ThisCoordinateNum = ThisCoordinateNum + 1
            return ThisCoordinateNum
        else:
            for i in range(0,len(Point)):
                ThisCoordinateNum = ThisCoordinateNum + GetCoordinateNum(Point[i])
            return ThisCoordinateNum
    else:
        for i in range(0,len(Point)):
            ThisCoordinateNum = ThisCoordinateNum + GetCoordinateNum(Point[i])
        return ThisCoordinateNum

测试 


版权声明:本文为yuelizhe4774原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。