Helpex - Trao đổi & giúp đỡ Đăng nhập
4

tôi có một từ điển với các nút:

supernodes = list(nx.connected_components(G1))

kết quả print(supernodes)là:

[{1, 2, 3, 5}, {8, 6}, {7, 9, 10, 12, 13}, {4}, {11}, {14}, {15}]

làm thế nào tôi có thể hợp nhất từng danh sách thành một nút? Tôi đã tìm thấy chức năng này nx.contracted_nodes(G, (1, 3))nhưng làm thế nào tôi có thể đặt {1,2,3,5}, {8,6}vv và tạo 7 nút được ký hợp đồng?

4 hữu ích 2 bình luận 2.4k xem chia sẻ
5

bạn có thể thử điều này:

import networkx as nx
# Preamble, define G1 

# contract nodes
for supernode in nx.connected_components(G1):
    nodes = sorted(list(supernode))
    for node in nodes[1:]:
        G1 = nx.contracted_nodes(G1, nodes[0], node)

Mọi nút x trong G1tương ứng với siêu âm có x là phần tử nhỏ hơn. Nếu bạn muốn loại bỏ vòng lặp tự, hãy viết nx.contracted_nodes(G1, nodes[0], node, self_loops=False).

5 hữu ích 1 bình luận chia sẻ
loading
Không tìm thấy câu trả lời bạn tìm kiếm? Duyệt qua các câu hỏi được gắn thẻ python algorithm python-3.x graph networkx , hoặc hỏi câu hỏi của bạn.

Có thể bạn quan tâm

loading