Я пытаюсь получить доступ к краям графического инструмента. Пример: предположим следующий график.
from graph_tool.all import *
g = Graph()
eprop = g.new_edge_property("int")
g.edge_properties["distance"] = eprop
v0 = g.add_vertex()
v1 = g.add_vertex()
v2 = g.add_vertex()
v3 = g.add_vertex()
v4 = g.add_vertex()
e0 = g.add_edge(v0, v1)
g.ep.distance[e0] = 1
e1 = g.add_edge(v1, v2)
g.ep.distance[e1] = 1
e2 = g.add_edge(v2, v3)
g.ep.distance[e2] = 1
e3 = g.add_edge(v3, v4)
g.ep.distance[e3] = 1
e4 = g.add_edge(v0, v4)
g.ep.distance[e4] = 1
e5 = g.add_edge(v0, v4)
g.ep.distance[e5] = 2
graph_draw(g, vertex_text=g.vertex_index, vertex_font_size=18, output_size=(200, 200), output="Test.png")
Из вершины 0 в вершину 4 ведут два ребра, одно длиной 1, другое длиной 2.
Теперь мой вопрос заключается в том, как выбрать конкретное ребро, зная индекс ребра. К сожалению, документация графического инструмента теперь гласит: «... Ребра не могут быть получены напрямую по их индексу, но если исходная и целевая вершины данного ребра известны, их можно получить с помощью метода edge () ...»
Но после сохранения и загрузки графика переменные v0,v1,... а также e0,e1,... больше не доступны. Попытка получить доступ к ребрам в графе, как указано в документации:
e = g.edge(0,4)
print(g.edge_index[e])
# > Returns 4
Просто возвращает одно из ребер из вершины 0 в вершину 4. Как получить доступ к другому? Зная, что индексы ребер равны 4 и 5.
Спасибо за помощь заранее!
g
— это граф, а не мультиграф. Только мультиграфы могут иметь параллельные ребра. - person DYZ   schedule 02.08.2017