Нет встроенных networkx
функций для этой проблемы, насколько я знаю. Но networkx
хранит узлы и ребра графа в итерируемых структурах, поэтому вы можете обрабатывать их один за другим следующим образом:
# For every node in graph
for node in G.nodes():
# We look for adjacent nodes
for adj_node in G[node]:
# If adjacent node has an edge to the first node
# Or our graph have several edges from the first to the adjacent node
if node in G[adj_node] or len(G[node][adj_node]) > 1:
# DO MAGIC!!
print(node, adj_node)
Я думаю, что это самый networkx
-иш-код, который может решить вашу проблему. Обратите внимание, что чем более разреженный график, тем быстрее он будет работать. В худшем случае - полный граф - сложность O (n ^ 2). В лучшем случае - очень разреженный граф - O (n).