1

我一直在使用 networkx,它让我直接从字典创建 Graph 对象的方式非常简洁:简单nx.Graph(my_dictionary)的 . 现在我正在尝试使用图形工具,但我注意到我不能这样做。

在谷歌搜索时,我发现了这篇博文,它展示了如何从 networkx 图创建一个图工具图。然而,这个过程非常复杂,每当我使用图形工具时,我都不想同时依赖自制函数networkx。

我想编写一个遍历我的字典的函数同样容易。但在我开始这样做之前,我想确保没有人已经编写过 dict-to-graph-tool 解析器。这似乎是一件显而易见的事情,但我在图形工具文档中找不到任何东西......

4

1 回答 1

2

这看起来很简单。假设您的字典表示图的邻接列表(即您在评论中所说的),可以按如下方式完成:

In [3]: d # This dictionary contains the adjacency list
Out[3]: {0: [1, 2], 1: [3]}

您可以从中创建边缘列表并将其添加到空图中:

In [4]: edges = [(i, j) for i in d for j in d[i]]

In [6]: G = gt.Graph(directed = False)

In [7]: G.add_edge_list(edges)

In [8]: G
Out[8]: <Graph object, undirected, with 4 vertices and 3 edges at 0x7fdbc8257780>

这就是你想要的。

于 2017-02-13T15:45:42.963 回答