如何在 Python 中从字典创建 igraph 对象

joh*_*ohn 1 python graph igraph

我在 Python 程序中使用字典来表示图形。我使用字典的键来表示顶点,使用值来表示每个顶点的相邻节点。字典目前看起来是这样的:

{  
   'v1' : ['v2','v3'],
   'v2' : ['v1'],
   'v3' : ['v1','v4'],
   'v4' : ['v3']
    // And so on. 
}
Run Code Online (Sandbox Code Playgroud)

有没有一种直接的方法可以从这个字典创建一个新的igraph 对象 ?如果没有简单的方法,那么下一个最佳选择是什么?

eat*_*eat 5

好吧,根据文档,似乎igraph需要vertices编码为integers. 所以你需要指定一个mappingfrom 你的verticestointegers然后你实际上可以像这样继续:

G= {'v1': ['v2', 'v3'], 'v2': ['v1'], 'v3': ['v1', 'v4'], 'v4': ['v3']}
mvi= {'v1': 1, 'v2': 2, 'v3': 3, 'v4': 4}
graph= igraph.Graph(edges= [(mvi[v], mvi[a]) for v in G.keys() for a in G[v]])
Run Code Online (Sandbox Code Playgroud)

  • “igraph” 库的一个相当隐藏的部分是“UniqueIdGenerator” 类,它允许您为字符串(或任何其他可哈希对象)生成唯一的整数索引。“UniqueIdGenerator” 是映射字典“mvi” 的直接替代品,它将即时构建映射。请参阅http://packages.python.org/python-igraph/igraph.datatypes.UniqueIdGenerator-class.html (4认同)
  • 您可以使用“enumerate”构建“mvi”。 (2认同)