当前位置: 首页 > 面试题库 >

如何使用python的networkx模块从节点列表生成完全连接的子图

韦胜泫
2023-03-14
问题内容

我需要使用networkx生成一个完全连接的子图,从要连接的节点列表开始。基本上,我希望传递给函数的列表中的所有节点都相互连接。

我想知道是否有内置功能来实现这一点(我还没有找到)?还是我应该考虑一些算法?

非常感谢你。


问题答案:

我不知道有什么方法可以做到这一点,但是您可以轻松模仿networkx的complete_graph()方法并稍作更改(几乎像内置方法一样):

import networkx
import itertools

def complete_graph_from_list(L, create_using=None):
    G = networkx.empty_graph(len(L),create_using)
    if len(L)>1:
        if G.is_directed():
            edges = itertools.permutations(L,2)
        else:
            edges = itertools.combinations(L,2)
        G.add_edges_from(edges)
    return G

S = complete_graph_from_list(["a", "b", "c", "d"])
print S.edges()


 类似资料:
  • 我需要在networkx 2.1中生成一个随机全连通有向图来评估非对称旅行商问题算法的性能。例如,生成一个包含100个节点的图,这些节点完全连接,边权重随机分配。图形是定向的(从节点i到节点j的边权重不一定等于从节点j到节点i的边权重) 想知道是否有一个networkx函数来生成这种有向图或一些示例代码。 我检查了networkx2.1(https://networkx.github.io/doc

  • 我正在尝试生成完整的路径列表,而不是优化的。使用下面的示例可以更好地解释。 上面代码创建了一个带有边的图和和 我想要的只是从中提取所有路径。 我试过: 我想要的只是: 是否有任何来自的预先存在的方法可以使用?如果没有,有什么方法可以编写一个最优的方法来完成这项工作? 注意:我的问题仅限于给出的例子。再也不可能有拐角案件了。 注2:为简化起见,生成数据。在我的例子中,edges列表来自数据集。假设给

  • 我正在使用node-html-pdf模块从我创建的模板生成一个pdf文件,生成后保存到我的服务器上。 现在这是完美的工作,但我真正需要的是,当我点击一个按钮,它生成PDF并下载文件,而不是保存它。 下面您可以看到我必须生成并保存文件的代码: 我想也许我可以你或,而不是,但我在这方面退出了新的,在留档中,它并不能真正解释如何和有效(或确实有效)。我希望也许有人能给我指明正确的方向?或者至少告诉我这是

  • 我对用Python制作网络图是完全陌生的。我了解到库可以用于在Python中绘制网络图。 我有11个节点。Node1、Node2、...、Node11。我想将它们绘制在四个不同的级别。Node1在1级。Node2和Node3在2级。Node4到Node7在3级,Node8到Node11在4级。 我使用创建了一个非常简单的1级和2级之间的基本网络图 为了在级别2和级别3之间绘制,我想询问用户,节点2

  • 本文向大家介绍Python如何使用paramiko模块连接linux,包括了Python如何使用paramiko模块连接linux的使用技巧和注意事项,需要的朋友参考一下 python程序需要连接linux时,需要使用密码或者秘钥验证以登录os进行命令操作或者文件传输,python中实现此功能的模块为paramiko;下面是该模块的基础用法 下面是通过密码进行linux登录执行命令和文件传输示例

  • 我对Haskell有点陌生,我试图生成列表的所有连续子列表。 我目前有以下几点: 我知道上面的函数会在删除最后一个元素的情况下生成子列表,但我不知道如何完成伪代码。 我的伪代码基本上是, 拿着完整的清单,去掉尾巴。将(x:xs)的xs传递到列表子列表中 例如,xs=[1,2,3][xs]列表子列表(init xs)将生成[1,2,3,4]、[1,2,3]、[1,2]、[1]、[1]、[1],[1]