julia - 如何删除 Lightgraphs 中的自循环

标签 julia lightgraphs

我是 Julia 和 LightGraphs 的新手,我一直在努力寻找检测和删除自循环的最有效方法。到目前为止,我找到的唯一方法是遍历 Simplegraph 中的所有节点,检查它是否有自循环,然后将其删除。有没有比在 Python NetworkX 中使用这种组合更好的方法:G.remove_edges_from(G.selfloop_edges())

我现在的做法是:

path = adrs\to\my\edgeList
G = SimpleGraph(loadgraph(path, GraphIO.EdgeList.EdgeListFormat()))
for node in vertices(G)
   if has_edge(G,node,node)
      rem_edge!(G,node,node)
   end
end

最佳答案

这可能是有条件地执行此操作的最佳方法,但您可以只调用 rem_edge!(G, node, node) 而无需 has_edge() 检查 - 它会返回一个 bool 值,指示边缘是否已被移除,因此如果那里没有实际边缘,则可以安全使用。

关于julia - 如何删除 Lightgraphs 中的自循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65629641/

相关文章:

arrays - Julia 方法实现 Python 等效列表列表

date - 如何在 Julia 中自动检测和解析日期格式?

julia - 为顶点添加自定义名称

julia - 从边缘获取顶点数

arrays - Julia 中不同大小的数组列表

python - Julia 代码没有完成而 Python 代码完成了

file-io - 在 Julia 中逐行阅读

julia - 用多维数组求解微分方程有没有更快的方法

julia - 在 Julia 中导入图形(网络)