Python 获得;ValueError:无效的顶点描述符“;删除顶点时
我不知道是什么导致了这个错误。我所做的是在开始时向图形添加许多顶点:Python 获得;ValueError:无效的顶点描述符“;删除顶点时,python,graph-tool,Python,Graph Tool,我不知道是什么导致了这个错误。我所做的是在开始时向图形添加许多顶点: for i in range(len(repositories_key_list)): repo_vertices[repositories_key_list[i]] = g3.add_vertex() 然后进行一些连接这些顶点的处理,为了减少渲染图形所需的时间,我删除了所有进出度等于零的垂直: for repository_name in repo_vertices: vert = repo_vertic
for i in range(len(repositories_key_list)):
repo_vertices[repositories_key_list[i]] = g3.add_vertex()
然后进行一些连接这些顶点的处理,为了减少渲染图形所需的时间,我删除了所有进出度等于零的垂直:
for repository_name in repo_vertices:
vert = repo_vertices[repository_name]
print vert
if vert.out_degree() == 0 and vert.in_degree() == 0:
g3.remove_vertex(vert)
但是,我所做的事情似乎是个问题,因为我遇到了以下错误:
Traceback (most recent call last):
File "/media/sfalk/win-data/Stefan/Uni/Master/WS/Network Science/projects/project1/github/graph_tools_github.py", line 276, in <module>
print vert
ValueError: invalid vertex descriptor: 22947
因此,无论这里发生了什么,我都不知道如何解决它。这在
图形的文档中有详细描述。即它指出:
此操作可能使顶点描述符无效。顶点始终是
在[0,N]范围内连续索引−1] ,因此是顶点描述符
索引高于的顶点将在删除后失效(如果
fast==False,否则只有指向具有
最大索引将无效)
因此,唯一安全的方法是同时删除多个顶点
一次是按索引降序排序:
或者(并且优选地),可以传递列表(或iterable)
直接作为顶点
参数,执行上述操作
内部(在C++中)
这在Graph.remove\u vertex()
at的文档中有详细描述。即它指出:
此操作可能使顶点描述符无效。顶点始终是
在[0,N]范围内连续索引−1] ,因此是顶点描述符
索引高于的顶点将在删除后失效(如果
fast==False,否则只有指向具有
最大索引将无效)
因此,唯一安全的方法是同时删除多个顶点
一次是按索引降序排序:
或者(并且优选地),可以传递列表(或iterable)
直接作为顶点
参数,执行上述操作
内部(在C++中)
我还不清楚:有没有一种方法可以移除任意顶点而不使至少一个其他顶点失效?我还不清楚:有没有一种方法可以移除任意顶点而不使至少一个其他顶点失效?
Traceback (most recent call last):
File "/media/sfalk/win-data/Stefan/Uni/Master/WS/Network Science/projects/project1/github/graph_tools_github.py", line 278, in <module>
if vert.out_degree() == 0 and vert.in_degree() == 0:
File "/usr/lib/python2.7/dist-packages/graph_tool/__init__.py", line 2933, in _out_degree
return self.__out_degree()
ValueError: invalid vertex descriptor: 23038
# 'del_list' is a list of vertex descriptors
for v in reversed(sorted(del_list)):
g.remove_vertex(v)