将NetworkX多向图转换为字典或从字典中转换

2024-05-18 21:16:32 发布

您现在位置:Python中文网/ 问答频道 /正文

我对NetworkX documentation的阅读表明这应该有效,但似乎不行?在

考虑:

import networkx as nx
g = nx.MultiDiGraph()
g.add_nodes_from([0, 1])
g.add_edge(0,1)
g.add_edge(0,1)

g.edges()  # returns [(0, 1), (0, 1)]

d = nx.to_dict_of_dicts(g)  # returns {0: {1: {0: {}, 1: {}}}, 1: {}}

g2 = nx.from_dict_of_dicts(d, multigraph_input=True)
# or, equivalently?, g2 = MultiDiGraph(d)

g2.edges()  # only returns [(0,1)]

我是在这里犯了一个小错误,还是这是一个bug?在

对于我的应用程序,我找到了一个更好的替代方法,即使用networkx.readwrite.json_graph进行序列化,但是我想我应该把这个问题留在这里,以防对其他人有用。在


Tags: offromimportnetworkxadddocumentationdictreturns
1条回答
网友
1楼 · 发布于 2024-05-18 21:16:32

问题是nx.from_dict_of_dicts()的默认图形输出似乎是一个简单的图形。在

>>> g2
<networkx.classes.graph.Graph at 0x10877add0>

尝试创建一个新的空图,该图的类型与您想要的输出相同,所以在您的例子中是一个多有向图。然后使用nx.from_dict_of_dicts()create_using参数来确保新图形的类型:

^{pr2}$

成功!在

相关问题 更多 >

    热门问题