我尝试将新的属性值添加到某些顶点和边,我从中只有名称。
g = Graph()
g.add_vertices(["1","2","3"])
g.add_edges([("1","2"),("2","3")])
向某些顶点和边添加属性的最佳方法是什么?
我发现了以下内容,但这似乎是不必要的冗长:
g.vs.find(name="1")["attribute"] = "value"
g.get_eid(g.vs.find(name="1").index, g.vs.find(name="2").index)
你不能做的是以下,我试过了
g.vs["1"] # -> would return the attribute list if there would be an attribute "1"
g.get_eid("1","2") # needs integers...
有没有更好的方法来通过名称引用边和顶点?
[背景:我首先尝试按顺序构建我的图(我知道每个名称的每个顶点 id),但没有缩放(add_edge 似乎有 O(n²) 行为)。但是现在我不知道顶点 id 并且不能分配边缘属性。我真的不想事先构造每个属性列表,因为我当前的 add_edges() 调用是一堆 itertools 功能]