Определение ребер в связанном компоненте - Python - PullRequest
0 голосов
/ 31 мая 2018

У меня есть набор связанных компонентов, полученных из дерева T следующим образом.

enter image description here

Чтобы получить все подключенные компоненты, я 'используя следующий пример кода:

connectedcomponents = sorted(nx.connected_components(T), key = len,reverse=True)

Это то, что я получаю;

[{66, 98, 68, 37, 7, 8, 73, 75, 44, 47, 81, 51, 19, 23, 55, 56, 58, 62, 63}, {97, 3, 6, 71, 39, 11, 77, 17, 60, 95}, {99, 5, 10, 43, 15, 20, 90, 92, 93}, {96, 4, 76, 80, 84, 53, 52}, {34, 74, 46, 18, 24, 61, 30}, {36, 9, 41, 83, 88, 57}, {65, 69, 40, 78, 21, 54}, {1, 2, 12, 13}, {89, 26, 70, 31}, {0, 42, 28, 79}, {32, 85, 86}, {59, 45, 94}, {82, 50, 22}, {64, 72}, {33, 14}, {16}, {87}, {48}, {91}, {49}, {67}, {29}, {35}, {25}, {38}, {27}]

Мне нужно получить ребра в каждом из этих компонентов.Например, для первого компонента {66, 98, 68, 37, 7, 8, 73, 75, 44, 47, 81, 51, 19, 23, 55, 56, 58, 62, 63} мне нужен отдельный список ребер: [(37,47),(47,7),(7,62),...].

Я попробовал это следующим образом:

def nodes_connected(u, v):
if u in T.neighbors(v):
    return True
else:
    return False


for i in connectedcomponents:
    print(i)
    for u,v in i:
        nodes_connected("u", "v")
        edges.append((u,v))

Но не сработало!!!

Может кто-нибудь помочь мне с этим?

...