【问题标题】:NetworkX g.neighbors(n) dict_keyiterator error message [duplicate]NetworkX g.neighbors(n) dict_keyiterator 错误消息 [重复]
【发布时间】:2020-02-13 09:56:55
【问题描述】:

我正在尝试使用 NetworkX 中的 G.neighbors() 函数在定义的图形中查找给定节点的所有邻居。我将有向图的图形结构设置如下:

import networkx as nx

#Define network structure
G=nx.DiGraph()
G.add_edge('x','a', dependency=0.4)
G.add_edge('x','b', dependency=0.6)
G.add_edge('a','c', dependency=0.9)
G.add_edge('b','c', dependency=0.3)
G.add_edge('b','d', dependency=0.7)
G.add_edge('d','e', dependency=0.8)
G.add_edge('c','y', dependency=0.4)
G.add_edge('e','y', dependency=0.2)
G.add_node('x', value=20)
G.add_node('a', value=15)
G.add_node('b', value=35)
G.add_node('c', value=10)
G.add_node('d', value=15)
G.add_node('e', value=5)
G.add_node('y', value=15)

现在,我正在尝试查找所有节点邻居,例如节点“b”,应该是“c”和“d”。我正在使用以下功能:

print(G.neighbors('b'))

现在,Python 不会抛出任何错误消息,而是抛出以下语句:

<dict_keyiterator object at 0x000001561D812950>
Process finished with exit code 0

如你所见,它不是抛出 G.node('b') 的邻居,而是抛出这条消息。有人可以帮我解决这个问题吗?

【问题讨论】:

标签: python python-3.x dictionary networkx graph-theory


【解决方案1】:

这是因为graph.neighbors() 函数返回一个迭代器对象。这可以看作是一个列表,就像我们通常查看迭代器一样:

>>> list(G.neighbors('b'))
['c', 'd']

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-02-06
    • 2013-12-18
    • 1970-01-01
    • 1970-01-01
    • 2017-01-19
    • 2015-08-09
    • 2019-01-09
    • 1970-01-01
    相关资源
    最近更新 更多