0
我有两个不同的图:g1和g2。我想将它们加在一起并创建一些边缘。为什么这不起作用?igraph中的add_edge导致自我循环而不是新的边缘
import igraph
def edging_up(g1, g2):
g = g1 + g2
for v in g.vs:
for w in g.vs:
try:
if v['name'].get_researcher_id() == w['name'].get_tutor_id():
g.add_edge(v, w)
except:
pass
return g
我需要try/exception,因为一个图没有get_tutor_id()方法。 我也试过
def edging_up(g1, g2):
g = g1 + g2
for v in g1.vs:
for w in g2.vs:
if v['name'].get_researcher_id() == w['name'].get_tutor_id():
g.add_edge(v, w)
return g
然后,它的工作原理,而是添加的边缘从v到W,它增加了一个自我循环,以诉 任何想法?欣赏它
“name”包含我添加的python类对象的所有方法。我也发现(从昨天开始有很多想法),当我添加两个图表(不相同)时,我失去了所有的属性(如“name”)。我在网上找不到很多答案/帮助。他们大部分都是关于R的igraph。我应该尝试使用networkx吗?谢谢, –
正如我所理解的那样,'name'将该节点作为一个可以访问其所有原始方法和变量的python对象来维护,对吗? –
我的意思是,在示例2中,我调试了一下,发现条件子句被正确检查。只是add_edge位有错误! –