'Graph'对象在networkx模块python中没有属性'nodes_iter'

cha*_*has 11 python networkx

我使用networkx模块在python2.7中有以下函数,产生错误.

for H in networkx.connected_component_subgraphs(G):
    bestScore = -1.0
    for n, d in H.nodes_iter(data=True):
        if d['Score'] > bestScore:
            bestScore = d['Score']
            bestSV = n
    if bestSV is not None:
        selectedSVs.add(bestSV)
Run Code Online (Sandbox Code Playgroud)

错误:

Traceback (most recent call last):
File "cnvClassifier.py", line 128, in <module>
for n, d in H.nodes_iter(data=True):
AttributeError: 'Graph' object has no attribute 'nodes_iter'
Run Code Online (Sandbox Code Playgroud)

有谁知道出了什么问题?

Ari*_*ric 15

您可能正在使用已删除nodes_iter()方法的networkx-2.0的预发布版本,现在提供具有相同功能的nodes()方法.请参阅有关networkx-2.0更改的详细信息.

  • 这应该是现在:https://networkx.github.io/documentation/stable/release/release_2.0.html (2认同)

Sum*_*Ela 6

万一链接再次更改,我将在此处发布实际的解决方案,以供将来参考。

从NetworkX 2.0向前,您应将以下代码行更改为:

for n, d in H.nodes_iter(data=True):
Run Code Online (Sandbox Code Playgroud)

至:

for n, d in list(H.nodes(data=True)):
Run Code Online (Sandbox Code Playgroud)