微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何使用 Networkx 包将 DAG 的邻接列表作为“dict”类型获取?

如何解决如何使用 Networkx 包将 DAG 的邻接列表作为“dict”类型获取?

我的尝试:我使用 networkx 包创建了一个有向图,并添加了两条边。然后尝试使用 G.adj 获取邻接表。然后我收到了 AdjacencyView 类型的邻接表。我曾尝试通过 list(G.adj) 更改输出,但它没有给我预期的结果。

G =nx.DiGraph()

G.add_edges_from([('1','2'),('2','3')])

G.adj
Out[65]: AdjacencyView({'1': {'2': {}},'2': {'3': {}},'3': {}})

list(G.adj)
Out[66]: ['1','2','3']

然后我尝试使用 dict(G.adj) 然后我收到了部分预期的输出但类型 AtlasView 是可见的。

dict(G.adj)
Out[70]: {'1': AtlasView({'2': {}}),'2': AtlasView({'3': {}}),'3': AtlasView({})}

我在寻找什么:我正在寻找的只是将邻接列表输出dict 类型,如下所示。我可以知道如何将 AdjacencyView 类型输出转换为 dict 类型吗?谢谢!

{'1': {'2': {}},'3': {}}
Out[71]: {'1': {'2': {}},'3': {}}

解决方法

试试adjacency

G = nx.DiGraph()
G.add_edges_from([('1','2'),('2','3')])    
print({k: v for k,v in G.adjacency()})

输出

{'1': {'2': {}},'2': {'3': {}},'3': {}}

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。