【问题标题】:G.add_edge error in Networkx as key errorNetworkx 中的 G.add_edge 错误作为关键错误
【发布时间】:2013-09-23 02:53:52
【问题描述】:

我尝试从列表中添加边:

for first in G.nodes():
    G_dict = copy.copy(G.node[first])
    sorted_G = sorted(G_dict.iteritems(), key = op.itemgetter(1), reverse = True)
        for number in range(0, close_limit):
           edge_temp.append((first,sorted_G[number][0]))
           print(edge_temp)
           G.add_edges_from(edge_temp)

当我打印 edge_temp 时,效果很好。但是,当我尝试使用函数G.add_edges_from()时,错误是:

Traceback (most recent call last):
  File "C:\Python27\Wireless\rd_pc_contact1.py", line 95, in <module>
    G.add_edges_from(edge_temp)
     File "C:\Python27\lib\site-packages\networkx-  
     1.8.1py2.7.egg\networkx\classes\graph.py", line 785, in add_edges_from
     datadict=self.adj[u].get(v,{})
  KeyError: 0

我无法理解错误发生的原因。你能清楚地解释错误吗?

【问题讨论】:

  • 我已尝试更正您代码上的缩进。如果需要,请随时修复。

标签: python graph networkx keyerror


【解决方案1】:

您正在寻找的边缘之一似乎不存在。 没有数据很难判断。

您可能只想通过 sorted_G 迭代数字,而不是使用显式列表。但也许你有这样做的理由。

【讨论】:

    【解决方案2】:

    从发布的代码中,很难判断 edge_temp 中的内容。这是您每次都附加到的列表。很可能您只希望边缘(first,sorted_G[number][0]) 添加一次,但您在每个循环中都做了很多次。我建议将add_edges_from 行更改为:

    G.add_edges_from([(first,sorted_G[number][0])])
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-09-02
      • 1970-01-01
      • 1970-01-01
      • 2021-07-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-08-17
      相关资源
      最近更新 更多