在计算节点距离时列出超出范围的索引



我正在做一项小任务,其中我必须找到两个节点之间的距离。每个节点都有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_。

最新更新