networkx
, пожалуй, наиболее широко используемая библиотека Python для графов.
Чтобы добавить атрибуты узла, используйте функцию set_node_attributes
.Аналогично для атрибутов ребер, есть функция set_edge_attributes
.
Например, чтобы добавить вес узла и длину ребра:
nx.set_node_attributes(G, {'A': 1, 'B': 5, 'C': 2}, 'weight') # add node weights
nx.set_edge_attributes(G, {('A','B'): 2, ('B','C'): 10}, 'length') # add edge lengths
networkx
имеет множество алгоритмов кратчайшего пути для различных типов графов.Документация здесь .