我有一个图,其中节点的ID是离散的。有什么方法可以使这些id连续,同时保持原始节点之间的关系? 例如,我有一个具有6个节点和3个边的图:1-> 2、6-> 9、8-> 7 如何使节点ID连续,这样我就可以得到具有如下边缘的图:1-> 2、3-> 6、5-> 4,其中“ 3”表示“ 6”,“ 4”表示“ 7” ,等等。
答案 0 :(得分:0)
假设您有list
条边(tuples
),可以对连续ID使用defaultdict
技巧:
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)]