为了账号安全,请及时绑定邮箱和手机立即绑定

如何将离散节点 ID 更改为连续节点 ID?

如何将离散节点 ID 更改为连续节点 ID?

喵喔喔 2021-09-11 19:37:58
我有一个图表,其中节点的 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)]


查看完整回答
反对 回复 2021-09-11
  • 1 回答
  • 0 关注
  • 115 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信