本文简要介绍
networkx.convert.to_dict_of_dicts
的用法。用法:
to_dict_of_dicts(G, nodelist=None, edge_data=None)
将图形的邻接表示作为字典的字典返回。
- dod:dict
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
),导致 dict-of-dict-of-dicts 最里面的字典包含边数据:>>> 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
这也适用于 MultiGraphs:默认情况下会保留边数据:
>>> 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}}
相关用法
- Python NetworkX to_prufer_sequence用法及代码示例
- Python NetworkX to_numpy_recarray用法及代码示例
- Python NetworkX to_scipy_sparse_array用法及代码示例
- Python NetworkX to_pydot用法及代码示例
- Python NetworkX to_vertex_cover用法及代码示例
- Python NetworkX to_sparse6_bytes用法及代码示例
- Python NetworkX to_numpy_matrix用法及代码示例
- Python NetworkX to_graph6_bytes用法及代码示例
- Python NetworkX to_pandas_adjacency用法及代码示例
- Python NetworkX to_nested_tuple用法及代码示例
- Python NetworkX to_networkx_graph用法及代码示例
- Python NetworkX to_numpy_array用法及代码示例
- Python NetworkX to_agraph用法及代码示例
- Python NetworkX to_scipy_sparse_matrix用法及代码示例
- Python NetworkX to_pandas_edgelist用法及代码示例
- Python NetworkX topological_generations用法及代码示例
- Python NetworkX topological_sort用法及代码示例
- Python NetworkX transitive_closure_dag用法及代码示例
- Python NetworkX tree_graph用法及代码示例
- Python NetworkX threshold_accepting_tsp用法及代码示例
- Python NetworkX tensor_product用法及代码示例
- Python NetworkX transitivity用法及代码示例
- Python NetworkX triangles用法及代码示例
- Python NetworkX triad_graph用法及代码示例
- Python NetworkX transitive_closure用法及代码示例
注:本文由纯净天空筛选整理自networkx.org大神的英文原创作品 networkx.convert.to_dict_of_dicts。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。