在我的图中,我有一些多重权重的边。有没有可能在python中为shortest_paths_dijkstra添加多个权重属性?下面给出我的示例代码:
import igraph
from igraph import *
g = Graph(directed=True)
g.add_vertices(3)
g.vs["name"]=["GO:1234567","GO:6789056","GO:5674321"]
g.add_edge('GO:1234567','GO:6789056', weight=4, weight1 = 3)
g.add_edge('GO:6789056','GO:5674321', weight=4, weight1 = None)
weight=g.es["weight"]
weight1=g.es["weight1"]
print(g.es[1].attributes())
print(g.shortest_paths_dijkstra(source="GO:1234567", target="GO:5674321", weights=weight1, mode=OUT))这段代码不能工作,因为第二边缘对weight1没有任何价值。如果weight1不存在,我如何定义它,然后使用权重作为权重属性?
发布于 2018-11-15 17:18:24
我通过其中一个开发人员(在github上)找到了一个解决方案。
g.es["weight1"] = [
w1 if w2 is None else w2
for w1, w2 in zip(g.es["weight"], g.es["weight1"])
]https://stackoverflow.com/questions/53182147
复制相似问题