【发布时间】:2018-06-12 08:23:07
【问题描述】:
我有两组数据 A 和 B,A 是起始节点,B 是结束节点。在每个集合中都有节点的编号、该节点的 X 坐标和 Y 坐标,如下所示。读取表时节点 0 连接到节点 1,节点 1 连接到节点 2,节点 0 也连接到节点 3,依此类推。
A X_A Y_A B X_B Y_B
--------------------------------------------------------------------------
0 x_0 y_0 1 x_1 y_1
1 x_1 y_1 2 x_2 y_2
0 x_0 y_0 3 x_3 y_3
2 x_2 y_2 4 x_4 y_4
0 x_0 y_0 5 x_5 y_5
3 x_3 y_3 6 x_6 y_6
1 x_1 y_1 7 x_7 y_7
每个列表都是一个数组,所以总共有六个数组。
我想提取数据,以便可以通过坐标读取每段线。一段线由一组节点定义,这些节点的起点和终点要么是交叉节点,要么是结束节点:交叉节点连接到两个以上的其他节点,而结束节点只连接到另一个节点。
在这个例子中,最终结果应该是:
[(x_0, y_0),(x_5, y5)]
[(x_0, y_0),(x_3, y_3),(x_6, y_6)]
[(x_0, y_0),(x_1, y_1)]
[(x_1, y_1),(x_7, y_7)]
[(x_1, y_1),(x_2, y_2),(x_4, y_4)]
我对如何用 python 做到这一点感到很困惑,感谢任何帮助!
【问题讨论】:
-
因此,如果您将其视为
graph,您正在搜索所有叶子的方法列表。 -
是的,但是如何在 python 中做到这一点?
-
为什么最终结果是:
[(x_0, y_0),(x_5, y5)][(x_0, y_0),(x_3, y_3),(x_6, y_6)][(x_0, y_0),(x_1, y_1)][(x_1, y_1),(x_7, y_7)][(x_1, y_1),(x_2, y_2),(x_4, y_4)]而不是:[(x_0, y_0),(x_5, y5)][(x_0, y_0),(x_3, y_3),(x_6, y_6)][(x_0, y_0),(x_1, y_1),(x_7, y_7)]pan[(x_0, y_0),(x_1, y_1),(x_2, y_2),(x_4, y_4)] -
我建议您将图形表示为Adjacency List,然后编写递归代码来打印列表。
-
因为1是一个与其他三个节点相连的交集节点
标签: python arrays python-3.x list