Код: Выделить всё
import networkx as nx
G = nx.DiGraph()
G.add_edges_from([(2,1),(3,1),(1,4)])
nx.draw(G)

Я хочу найти все начальные и конечные узлы. Итак, я использую:
Код: Выделить всё
startnodes = [x for x in G.nodes() if G.out_degree(x)==1 and G.in_degree(x)==0]
endnode = [x for x in G.nodes() if G.out_degree(x)==0 and G.in_degree(x)==1][0]
print(startnodes, endnode)
[2, 3] 4
Код: Выделить всё
G.add_edges_from([(2,1),(3,1)]

Подробнее здесь: https://stackoverflow.com/questions/576 ... cted-graph
Мобильная версия