to_dict_of_dicts#
- to_dict_of_dicts(G, nodelist=None, edge_data=None)[源代码]#
将图形的邻接表示形式作为字典返回。
- 参数
- 返回
- dodDICT
的嵌套词典表示形式
G
。请注意,嵌套级别取决于G
以及它的价值edge_data
(请参见示例)。
笔记
有关处理边缘数据的更定制方法,请尝试::
dod = { n: { nbr: custom(n, nbr, dd) for nbr, dd in nbrdict.items() } for n, nbrdict in G.adj.items() }
哪里
custom
返回中间每条边的所需边数据n
和nbr
,给定现有的边缘数据dd
。实例
>>> G = nx.path_graph(3) >>> nx.to_dict_of_dicts(G) {0: {1: {}}, 1: {0: {}, 2: {}}, 2: {1: {}}}
默认情况下会保留边数据 (
edge_data=None
),导致词典词典,其中最里面的词典包含边缘数据:>>> G = nx.Graph() >>> G.add_edges_from( ... [ ... (0, 1, {'weight': 1.0}), ... (1, 2, {'weight': 2.0}), ... (2, 0, {'weight': 1.0}), ... ] ... ) >>> d = nx.to_dict_of_dicts(G) >>> d {0: {1: {'weight': 1.0}, 2: {'weight': 1.0}}, 1: {0: {'weight': 1.0}, 2: {'weight': 2.0}}, 2: {1: {'weight': 2.0}, 0: {'weight': 1.0}}} >>> d[1][2]['weight'] 2.0
如果
edge_data
不是None
,替换原始图形中的边数据(如果有):>>> d = nx.to_dict_of_dicts(G, edge_data=1) >>> d {0: {1: 1, 2: 1}, 1: {0: 1, 2: 1}, 2: {1: 1, 0: 1}} >>> d[1][2] 1
这也适用于多图形:默认情况下会保留边缘数据:
>>> G = nx.MultiGraph() >>> G.add_edge(0, 1, key='a', weight=1.0) 'a' >>> G.add_edge(0, 1, key='b', weight=5.0) 'b' >>> d = nx.to_dict_of_dicts(G) >>> d {0: {1: {'a': {'weight': 1.0}, 'b': {'weight': 5.0}}}, 1: {0: {'a': {'weight': 1.0}, 'b': {'weight': 5.0}}}} >>> d[0][1]['b']['weight'] 5.0
但是,如果出现以下情况,多边数据将丢失
edge_data
不是None
:>>> d = nx.to_dict_of_dicts(G, edge_data=10) >>> d {0: {1: 10}, 1: {0: 10}}