用Python代表网络

gra*_*aph 4 python graph-theory

我有一个顶点如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
Run Code Online (Sandbox Code Playgroud)

我想通过边将第一列中的每个顶点与第二列中的对应顶点相关联.所以aa是代表一个循环.bd是罚款.e,cn他们共享同一个顶点f.而是说ef,cf,并nf我们可以说e,cnf.

kur*_*sch 5

请参阅: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 ]
Run Code Online (Sandbox Code Playgroud)

编辑:

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

像这样的东西:

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
Run Code Online (Sandbox Code Playgroud)

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