我正在与一个经典的 Dijkstra 问题作斗争!
我有一组节点/坐标。我正在遍历它们以查看它们是否在给定的 radius
内。
x = np.empty([0, 3], dtype=float)
for j in range(len(Coord)):
for k in range(len(Coord)):
a = np.sqrt(((Coord[j][0] - Coord[k][0]) ** 2) + ((Coord[j][1] - Coord[k][1]) ** 2))
if a < radius and a != 0:
y = np.array([j, k, a])
x = np.vstack((x, y))
Coord
是坐标的数组
。
这给了我正确的值,但由于 0->3 与 3->0 相同,我得到了很多重复数据。这是问题所在。数据应该是唯一的。
最佳答案
一种可能是在外循环的位置开始内循环:
for j in range(len(Coord)):
for k in range(j,len(Coord)):
[loop body]
range
函数中的高起点将排除所有 j
大于 k
的值对,防止重复而不排除任何值非重复值。
关于python - 消除嵌套for循环处理的数据中的重复值(节点),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35118446/