文档中说,图中孤立的顶点可以用网络X.隔离(G)。它还补充说,可以使用代码G从图G中移除孤立的顶点(nx.分离物(G)。在
但是当我运行代码时,我得到了运行时错误“dictionary changed size during iteration”。在
错误报告:-
>>> G.remove_nodes_from(nx.isolates(G))
Traceback (most recent call last):
File "", line 1, in
File "/home/iiitdm/anaconda2/lib/python2.7/site-packages/networkx/classes/graph.py", line 617, in remove_nodes_from
for n in nodes:
File "/home/iiitdm/anaconda2/lib/python2.7/site-packages/networkx/algorithms/isolate.py", line 94, in
return (n for n, d in G.degree() if d == 0)
File "/home/iiitdm/anaconda2/lib/python2.7/site-packages/networkx/classes/reportviews.py", line 443, in __iter__
for n in self._nodes:
RuntimeError: dictionary changed size during iteration
这是可以理解的,也是意料之中的,因为(我认为)使用isorelates()函数创建的generator对象会随着G发生变化,因此在“迭代”时更改图形G也会产生类似的错误。那么文档中的那一行一定是错的,不是吗?我完全不对劲吗?我对python很陌生。在
顺便说一下,返回的对象网络X.隔离()是生成器对象。在
谢谢你