我正在做一项小任务,其中我必须找到两个节点之间的距离。每个节点都有X和Y坐标,如下所示。
node_number X_coordinate Y_coordinate
0 0 1 0
1 1 1 1
2 2 1 2
3 3 1 3
4 4 0 3
5 5 0 4
6 6 1 4
7 7 2 4
8 8 3 4
9 9 4 4
10 10 4 3
11 11 3 3
12 12 2 3
13 13 2 2
14 14 2 1
15 15 2 0
为了我上面提到的目的,我写了下面的代码,
X1_coordinate = df['X_coordinate'].tolist()
Y1_coordinate = df['Y_coordinate'].tolist()
node_number1 = df['node_number'].tolist()
nodal_dist = []
i = 0
for i in range(len(node_number1)):
dist = math.sqrt((X1_coordinate[i+1] - X1_coordinate[i])**2 + (Y1_coordinate[i+1] - Y1_coordinate[i])**2)
nodal_dist.append(dist)
我得到错误
list index out of range
请让我知道我做错了什么,我应该改变什么才能得到答案。
索引从零开始,因此列表中的最后一个元素的索引比该列表中的元素数少一个。但是len()
函数会为您提供列表中元素的数量(换句话说,它从1开始计数(,因此您希望循环的范围为len(node_number1) - 1
,以避免一次出错。
问题应该在这一行
dist = math.sqrt((X1_coordinate[i+1] - X1_coordinate[i])**2 + (Y1_coordinate[i+1] - Y1_coordinate[i])**2)
则CCD_ 3和]CCD_。