如何使用对象列表制作 igraph 对象?

问题描述

我有一个“树节点”对象列表。

每个“树节点”有 3 个属性,都是字符串。

我尝试按照教程

enter image description here

但是,我无法添加节点。

我当前的代码

testlist = []
for elem in mytree1.iter():
    testlist.append(treenode(elem.tag,elem.attrib,elem.text))

G = Graph()
for x in testlist:
    G.add_vertices(x)

我得到的错误

an integer is required (got type treenode)

我应该如何使用列表向 igraph 添加节点?

解决方法

您可以使用 add_vertex 方法添加单个节点并将新添加的节点作为 Vertex 对象取回,然后可用于设置其属性。

G = graph()
for x in testlist:
    v = G.add_vertex()
    v["tag"] = x.tag
    v["attrib"] = x.attrib
    v["text"] = x.text

Here 解释了 igraph 为何以这种方式工作。