在使用networkx时,如何在Python中将网络表示为字典?

在使用networkx时,如何在Python中将网络表示为字典?,python,dictionary,graph-theory,Python,Dictionary,Graph Theory,netowrkx的这一部分表示它接受的数据结构类似于字典中的字典 我浏览了这篇文章,但我想不出用networkx可以接受的方式来表达它 假设我有一个例子,我有一个user\u no和相应的user\u nos,它们实际上是他的朋友。如何将其表示为字典?请参阅networkx文档- d={0: {1: 1}} # dict-of-dicts single edge (0,1) G=nx.Graph(d) 请注意,您正在链接版本1.6的networkx文档,而当前版本是1.8.1 我建议您考虑您需

netowrkx的这一部分表示它接受的数据结构类似于字典中的字典

我浏览了这篇文章,但我想不出用
networkx
可以接受的方式来表达它


假设我有一个例子,我有一个
user\u no
和相应的
user\u no
s,它们实际上是他的朋友。如何将其表示为字典?

请参阅networkx文档-

d={0: {1: 1}} # dict-of-dicts single edge (0,1)
G=nx.Graph(d)

请注意,您正在链接版本1.6的networkx文档,而当前版本是1.8.1

我建议您考虑您需要的图形类型,即节点之间的单个无向边,选择一个
networkx.graph
,多个有向边,选择一个
networkx.MultiDiGraph
DiGraph
MultiGraph
也存在)

然后,您可以使用
add_edge
add_edge\u from
方法,它们将为您生成底层数据结构,例如

>>> import networkx as nx
>>> net = nx.Graph()
>>> net.add_edge("user_42", "user_9", trust=9)
>>> net.adj
{'user_42': {'user_9': {'trust': 9}}, 'user_9': {'user_42': {'trust': 9}}}

我的错,这是从我的头顶上做的。当您使用
nx.Graph
类时,它是无向的,由存在的两条边表示。我将编辑我的答案。