我正在使用python igraph版本0.6.5。我有点不清楚在下面的代码中:
g = igraph.Graph(directed=True)
g.add_vertex('A')
g.add_vertex('B')
g.add_vertex('A')
print g.vcount()
这使得顶点计数为3,即使顶点名称'A'是重复的,为什么两个顶点名称'A'都被视为2个不同的顶点?我们如何索引顶点名称?
答案 0 :(得分:1)
当您运行QGraphicsScene
时,igraph会不将g.add_vertex('A')
添加为图表的顶点 - 它会添加一个全新的顶点,然后将"A"
分配给它的"A"
属性,但igraph中的名称不一定是唯一的。内部顶点由从零到| V | -1的整数表示,名称只是被攻击到顶点的属性。因此,如果要确保不创建具有相同名称的重复顶点,则需要检查是否存在具有相同名称的顶点:
name
try:
vertex = g.vs.find("A")
except ValueError:
g.add_vertex("A")
顶点属性由igraph专门处理,因为它始终由将顶点名称映射到具有此名称的第一个顶点的字典支持,因此name
是一个快速操作(无需扫描整个图形)。