2016-09-06 14 views
1

私はnetworkxをちょっと使いました。辞書から直接Graphオブジェクトを作成する方法はとても簡単です。単純にnx.Graph(my_dictionary)です。 今、graph-toolを使用しようとしていますが、私は同じことをすることができません。辞書からグラフツールグラフを作成する

私はthis blog postを見つけたが、networkxグラフからグラフツールグラフを作成する方法を示した。 しかし、このプロセスはかなり複雑なので、私はgraph-toolを使うたびに自家製の関数 networkxの両方に依存したくありません。

私の辞書で反復する関数を書くのと同じように簡単だと思います。 しかし、私はそれを行う前に、誰も既にdict-to-graph-toolパーサを作成していないことを確認したかったのです。 これは明らかなようですが、グラフツールのドキュメントには何も見つかりません....

+0

あなたの辞書には何が含まれていますか? – Peaceful

+0

エッジが由来する各頂点はキーであり、対応する値はエッジが指し示す頂点のリストである。それは、networkxがそれをそのままの状態でサポートするので、かなり明白なフォーマットのようです。 – TheChymera

+0

私は今答えを追加しました。 – Peaceful

答えて

2

これはかなり簡単です。以下のように(それはあなたがコメントで言っている)あなたの辞書は、グラフのadjacency listを表していると仮定すると、それは行うことができます。

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> 

これはあなたが望むものです。

関連する問題