/ / python igraph - get_adjlist () nie zwraca nazw wierzchołków, tylko ids - python, igraph

python igraph - get_adjlist () nie zwracające nazw wierzchołków, tylko identyfikatory - python, igraph

Wczytam graphml do igraph

from igraph import *
wiki = Graph.Read_GraphML("discussion_network.graphml")

ale kiedy robię

g = wiki.get_adjlist()

Dostaję identyfikatory, podczas gdy w pliku graphml są faktycznie zapisane nazwy dla każdego węzła.

>>> g = wiki.get_adjlist()
>>> str(g[0])
"[1, 2, 3, 4]"
>>> str(g[1])
"[0, 2, 3097, 3099, 3101, 3102, 3103, 3106]"
>>>

Jak mogę utworzyć listę z nazwami, a nie identyfikatorami?

>>> summary(wiki)
IGRAPH UNW- 17266 116036 --
+ attr: id (v), name (v), weight (e)

Dzięki.

Aktualizacja:

Ręcznie wpisuję nazwy do kolekcji z kodem wiki.vs.find(i)["name"] wykonane w pętli, ale nie mogę się doczekać, aby uzyskać bardziej cywilizowane rozwiązanie.

Odpowiedzi:

1 dla odpowiedzi № 1

Napisz funkcję narzędzia, a następnie użyj go, kiedy potrzebujesz listy przyległości z nazwami:

def get_adjlist_with_names(graph):
names = graph.vs["name"]
result = {}
for index, neighbors in enumerate(graph.get_adjlist()):
result[names[index]] = [names[nei] for nei in neighbors]
return result

0 dla odpowiedzi nr 2

Nie ma takiej metody w pakiecie Pythona-igraph.

Nie mogę się doczekać, aby zamknąć pytanie, kiedy to możliwe.