我有两个不同的图形:g1和g2。我想把他们加在一起,创造一些边缘。为什么这不起作用?在
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()方法。 我也试过了
^{pr2}$然后,它就可以工作了,但是它没有从v向w添加一条边,而是向v添加了一个自循环
第二个示例不起作用,因为}的{}属性,然后本质上运行}的上下文中没有意义(因为索引分别引用})。在
w
是来自g2
的顶点,而您正试图在g
中添加一条边。igraph返回的vertex对象实际上只是顶点索引的代理,所以当您运行g.add_edge(v, w)
时,igraph将简单地检索v
和{g.add_edge(v.index, w.index)
,这在{g1
和{对于第一个示例,您需要提供更多信息;例如,
name
vertex属性包含什么?在相关问题 更多 >
编程相关推荐