python igraph - get_adjlist()不返回顶点名称,只返回id

时间:2015-06-08 12:08:30

标签: python igraph

我正在将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']的集合中,但我期待着一些更文明的解决方案。

2 个答案:

答案 0 :(得分:1)

编写实用程序函数,然后在需要名称为

的邻接列表时使用它
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

答案 1 :(得分:0)

python-igraph包中没有这样的方法。

我期待在可能的情况下提出质疑。