有一个坐标集合,我想要知道一共有多少个点(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版权协议,转载请附上原文出处链接和本声明。