我需要一个简单的解决方案来检查大束图中是否存在顶点
我尝试找到方法,但我得到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
包裹在try
和except
块中。如果节点存在,对于大型图,这将比select
更快,因为一旦找到节点,它将停止执行。
def has_node(graph, name):
try:
graph.vs.find(name=name)
except:
return False
return True