1

私は少しの間 networkx を使用してきましたが、辞書から直接 Graph オブジェクトを作成できるのは本当に素晴らしいですnx.Graph(my_dictionary)。現在、グラフツールを使用しようとしていますが、同じことができないことに気付きました。

グーグルで検索しているときに、networkx グラフからグラフ ツール グラフを作成する方法を示すこのブログ投稿に出くわしました。ただし、このプロセスは非常に複雑であり、graph-tool を使用するたびに自作の関数と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 に答える