我有一个图表,其中节点的 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条经验 获得超7个赞
假设你有一个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
提交
取消