索引顶点名称



我正在使用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个不同的顶点?如何索引顶点名称

当你运行g.add_vertex('A')时,igraph不添加"A"作为一个顶点到图中-它添加了一个全新的顶点,然后将"A"分配给它的name属性,但名称在igraph中不需要是唯一的。内部顶点由从0到|V|-1的整数表示,名称只是攻击顶点的属性。因此,如果你想确保不会创建同名的重复顶点,你需要检查是否存在同名的顶点:

try:
    vertex = g.vs.find("A")
except ValueError:
    g.add_vertex("A")

name顶点属性被igraph特殊处理,因为它总是由一个字典支持,该字典将顶点名称映射到具有该名称的第一个顶点,因此g.vs.find("A")是一个快速操作(不需要扫描整个图)。

最新更新