用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