图python检查顶点是否存在



我需要一个简单的解决方案来检查大束图中是否存在顶点

我尝试找到方法,但我得到ValueError如果顶点不在图

例如,代码将失败

def treeExample():
g = Graph()
g.add_vertex('a')
g.add_vertex('b')
g.vs.find(name = 'c')
if __name__ == '__main__':
treeExample()

事实上,我需要一些布尔函数来告诉顶点是否存在(没有运行时错误或抛出异常)

当然,我可以创建一个自己的集合来检查这个,但这很不方便

那么这个问题是否可以绕过igraph library来解决呢?

尝试使用select方法:

g = Graph()
g.add_vertex('a')
g.add_vertex('b')
len(g.vs.select(name='c'))  # return 0
len(g.vs.select(name='a'))  # return 1

您可以将find包裹在tryexcept块中。如果节点存在,对于大型图,这将比select更快,因为一旦找到节点,它将停止执行。

def has_node(graph, name):
try:
graph.vs.find(name=name)
except:
return False
return True

最新更新