编程语言
首页 > 编程语言> > 用Python代表网络

用Python代表网络

作者:互联网

我有一个顶点,如dic = {‘a’:0,’b’:1,’c’:2,’d’:3,’e’:4,’f’:5,’n’:6 ,’m’:7,’g’:8}我有两列如下表示顶点之间的关系:

a a
b d
e f
c f
n f
m g

我想通过边将第一列中的每个顶点与第二列中的对应顶点相关联.因此a表示循环. b与d很好. e,c和n它们共享相同的顶点f.相反,用f表示e,用f表示f,用f表示n,我们可以用f表示e,c和n.

解决方法:

见:https://www.python.org/doc/essays/graphs/

graph = {
    'a' : [ 'a' ],
    'b' : [ 'd' ],
    'c' : [ 'f' ],
    'd' : [],
    'e' : [ 'f' ],
    'f' : [],
    'g' : [],
    'm' : [ 'g' ],
    'n' : [ 'f' ]
}

print [ vertex for vertex, edges in graph.items() if 'f' in edges ]

编辑:

好吧,听起来你只是想要一个函数来从你给定的输入构建图形?

像这样的东西:

def build_graph( vertices, edges ):
    graph = dict( (v, list()) for v in vertices.keys() )
    for a, b in edges:
        graph[ a ].append( b )
    return graph

如果您需要帮助将列数据解析为两元组列表,那么这完全是另一个问题

标签:python,graph-theory
来源: https://codeday.me/bug/20190621/1254476.html