Python igraph 无法在无向图中找到边

Python igraph cant find edges in an undirected graph

我在 Python 3 中有这个简单的代码,使用 igraph 来 return 我添加到无向图中的边。

from igraph import *
g = Graph()
g.add_vertices(3)
g.add_edges([(0,1), (1,2)])
# display(plot(g))
edge=g.es.find(_source=1, _target=0)

但是当我使用函数 graph.es.find() 时,它给了我一个错误而不是 returning 边缘。它说有 "no such edge".

---------------------------------------------------------------------------
ValueError                                Traceback (most recent call last)
<ipython-input-14-4182287b1986> in <module>
      4 g.add_edges([(0,1), (1,2)])
      5 # display(plot(g))
----> 6 edge=g.es.find(_source=1, _target=0)

E:\Softwares\Anaconda\lib\site-packages\igraph\__init__.py in find(self, *args, **kwds)
   3615         if es:
   3616             return es[0]
-> 3617         raise ValueError("no such edge")
   3618 
   3619     def select(self, *args, **kwds):

ValueError: no such edge

但是,如果我按照输入时的相同顺序设置源和目标,它会 return 边缘。在这种情况下,源 = 0,目标 = 1
我的猜测是它不是真正的无向图。

我的问题是,即使我在 g.es.find() 函数中切换源节点和目标节点,我如何获得一个真正的无向图,其中 return 是边缘,因为它应该用于无向图?

用这个来获得优势:

from igraph import *
g = Graph()
g.add_vertices(3)
g.add_edges([(0,1), (1,2)])

#get the ID
g.get_eid(0,1)
0

#get the edge list
g.get_edgelist()
[(0, 1), (1, 2)]

#get the first edge from the edge list
g.get_edgelist()[0]
(0, 1)

最后验证一下是不是定向使用g.is_directed()