本文簡要介紹
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。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。