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

时间:2015-11-16 11:58:13

标签: python networkx

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

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)

错误:

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'

有人知道出了什么问题吗?

2 个答案:

答案 0 :(得分:12)

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

答案 1 :(得分:4)

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

从NetworkX 2.0转发开始,您应该将以下代码行更改为:

for n, d in H.nodes_iter(data=True):

收件人:

for n, d in list(H.nodes(data=True)):