python igraph - get_adjlist() 不返回顶点名称,仅返回 ID

python igraph - get_adjlist() not returning vertex names, only ids

我正在将 graphml 加载到 igraph

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

但是当我这样做的时候

g = wiki.get_adjlist()

我得到了 id,而在 graphml 文件中实际上存储了每个节点的名称。

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

如何创建包含名称而非 ID 的列表?

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

谢谢。

更新:

我正在使用循环执行的代码 wiki.vs.find(i)['name'] 手动将名称添加到集合中,但我期待一些更文明的解决方案。

python-igraph包中没有这个方法

我期待着尽可能关闭问题。

编写一个效用函数,然后在需要邻接表时使用它:

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