networkxを使用してグラフGを作成し、エッジ(1,2)を追加しました。不思議なことに、networkx内のグラフ内の一貫性のないエッジデータ
(1,2) in G.edges() == False
しかし
G.has_edge(1,2) == True
私はバッフル付きです。これは問題の簡潔な要約です。実際のグラフデータは大きく、ここでは完全には再現できません。
networkxを使用してグラフGを作成し、エッジ(1,2)を追加しました。不思議なことに、networkx内のグラフ内の一貫性のないエッジデータ
(1,2) in G.edges() == False
しかし
G.has_edge(1,2) == True
私はバッフル付きです。これは問題の簡潔な要約です。実際のグラフデータは大きく、ここでは完全には再現できません。
G.edges()
には、各エッジが1回しかありません。これは無向グラフなので、(1,2)
または(2,1)
のいずれかになります(両方を表示したくない場合は、最初にエッジを繰り返して削除することができます)。どのような順序で実行されるのかは分かりません。なぜなら、それはPythonの辞書から来ているからです。それはdoes not have predictable orderです。 (1,2) in G.edges() or (2,1) in G.edges()
を実行することはできますが、実際にはしたくない - エッジリストを作成することは効率的ではありません。
したがって、テストでは、正しくチェックする(さらに効率的に)G.has_edge(1,2)
を使用する必要があります。 G = nx.Graph()において
[4]:
だけ異なるPythonの実装のための予測可能性の欠如を示すが、これは私が[3]で
を得るものです[5]でG.add_edge(1,2)
:G.edges()
OUT [5]:[(1、2)]
[7]における真:G.edgesにおける(1,2)()
OUT [6]:G.add_edge(4,3)
[6]において
[8]:G.edges()
OUT [8]:[(1,2)、(3,4)]で
[9]:(4,3)G.edgesに( )
Out [9]:False