我有一個圖表,其中節點的 id 是離散的。有什么辦法可以讓這些id連續同時保持原始節點之間的關系?例如,我有一個包含 6 個節點和 3 個邊的圖:1->2, 6->9, 8->7 如何使節點 id 連續,以便我可以有一個邊為:1->2 , 3->6, 5->4 其中“3”指的是“6”,“4”指的是“7”等。
1 回答

qq_遁去的一_1
TA貢獻1725條經驗 獲得超8個贊
假設你有一個list邊 ( tuples),你可以使用defaultdict連續 id的技巧:
from collections import defaultdict
edges = [(1, 2), (6, 9), (8, 7), (6, 7), (9, 1)]
d = defaultdict(lambda: len(d) + 1)
id_edges = [(d[x], d[y]) for x, y in edges]
# [(1, 2), (3, 4), (5, 6), (3, 6), (4, 1)]
或開始于0:
d = defaultdict(lambda: len(d))
id_edges = [(d[x], d[y]) for x, y in edges]
[(0, 1), (2, 3), (4, 5), (2, 5), (3, 0)]
添加回答
舉報
0/150
提交
取消