I have a vertices such as dic = {'a': 0, 'b': 1, 'c': 2, 'd': 3, 'e': 4, 'f': 5, 'n':6, 'm':7, 'g':8} and i have two columns as follows represent the relationship between the vertices :
a a
b d
e f
c f
n f
m g
I want to associate each vertex in the first column with the corresponding vertex in the second column by an edge. So a with a is represent a loop. b with d is fine. e,c and n they are sharing the same vertex f. Instead to say e with f, c with f and n with f we can say e, c and n with f.
解决方案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 ]
EDIT:
Ok, it sounds like you just want a function to build the graph from your given inputs?
Something like this:
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
If you need help parsing your columnar data into a list of two-tuples then that's a different question entirely