ネットワークグラフを操作していると、「このノードは、グラフ中に存在しているのか?」と確認する処理を書きたくなる。
igraph+pythonでは、以下のようにする。
from igraph import * g = Graph() # 空のグラフを作成 g.add_vertices(["a","b","c"]) # "a","b","c"という名前のノードを追加 if "c" in g.vs()["name"]: print("Exist") # "c"というノードがあればExistを標準出力
ポイントは、g.vs()["name"]で、ノードの名前一覧を取得している所だ。この中に、対象のノードがあるかを、通常のリストの要素存在確認と同じようにするだけ。
igraphでは、ノードやリンクの存在を確認するための、直接的なメソッドは用意されていないようなので、自分は、このような回りくどい方法をとっている。
計算時間がネックになる場合は、問題かもしれない…。
コメント
コメントを投稿