python - 消除嵌套for循环处理的数据中的重复值(节点)

标签 python for-loop duplicates nodes

我正在与一个经典的 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/

相关文章:

python - 如何加速pandas df.apply(np.where或np逻辑_and.reduce的概率?)

c - 使用多个进程读取文件并通过pipe()发送数字

javascript - 循环遍历对象以返回具有 'distinct' 属性的对象 - Javascript

linux - 在文件中查找部分重复行并计算每行重复了多少次?

Python在网页上查找文件下载链接

Python pip 无法找到 pyodbc

具有十进制增量的 Javascript For 循环输出错误

java - 避免整数数组中的重复整数

mysql - 在不指定值的情况下查找三列中重复的行?

python - 属性错误: 'module' object has no attribute 'm1'