Perform Vereinigung von Graphen basierend auf Scheitelpunktnamen Python igraph

Diese Ausgabe wurde abgelegt am github so etwas wie vor 6 Monaten, aber da es noch nicht behoben wurde, frage ich mich, ob es eine schnelle Lösung gibt, die mir fehlt.

Ich möchte zwei Diagramme basierend auf ihren Namen zusammenführen:

g1 = igraph.Graph()
g2 = igraph.Graph()

# add vertices
g1.add_vertices(["A","B"])
g2.add_vertices(["B","C","D"])

for vertex in g1.vs:
    print vertex.index
0
1

for vertex in g2.vs:
    print vertex.index
0
1
2

Wenn ich jedoch die Vereinigung durchführe, verwendet igraph die Scheitelpunkt-IDs anstelle der Namen, sodass ich drei statt vier Scheitelpunkte erhalte (wenn es auf Namen basiert). Ich denke das, weilB hat den Index0 img2, es wird mit @ zusammengefühA vong1. Und auf ähnliche WeiseC vong2 wird mit @ zusammengefühB vong1.

g_union = igraph.Graph.union(g1,g2)

g_union.vs['name'] # of course
KeyError: 'Attribute does not exist'

for vertex in g_union.vs:
    print vertex.index
0
1
2

Hast du eine Idee, wie du dieses Problem umgehen kannst? Dies ist möglich, da dies in der R-Implementierung von igraph geschehen ist.

Antworten auf die Frage(2)

Ihre Antwort auf die Frage