2024-10-06 13:28:25 发布
网友
我使用的是pythonigraph版本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的整数表示,名称只是攻击顶点的属性。因此,如果要确保不创建具有相同名称的重复顶点,则需要检查是否存在具有相同名称的顶点:
g.add_vertex('A')
"A"
name
try: vertex = g.vs.find("A") except ValueError: g.add_vertex("A")
igraph特别处理namevertex属性,因为它总是由一个字典支持,该字典将顶点名称映射到具有此名称的第一个顶点,因此g.vs.find("A")是一个快速操作(无需扫描整个图)。你知道吗
g.vs.find("A")
运行
g.add_vertex('A')
时,igraph不会将"A"
作为顶点添加到图中-它会添加一个全新的顶点,然后将"A"
分配给它的name
属性,但名称在igraph中不必是唯一的。内部顶点由从0到| V |-1的整数表示,名称只是攻击顶点的属性。因此,如果要确保不创建具有相同名称的重复顶点,则需要检查是否存在具有相同名称的顶点:igraph特别处理
name
vertex属性,因为它总是由一个字典支持,该字典将顶点名称映射到具有此名称的第一个顶点,因此g.vs.find("A")
是一个快速操作(无需扫描整个图)。你知道吗相关问题 更多 >
编程相关推荐