Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimana untuk Menggabungkan Senarai dengan Elemen Dikongsi Menggunakan NetworkX?

Bagaimana untuk Menggabungkan Senarai dengan Elemen Dikongsi Menggunakan NetworkX?

Mary-Kate Olsen
Mary-Kate Olsenasal
2024-10-21 17:13:02782semak imbas

How to Merge Lists with Shared Elements Using NetworkX?

Menggabungkan Senarai dengan Elemen Dikongsi

Tugas ini melibatkan penggabungan senarai yang berkongsi elemen yang sama, menghasilkan struktur yang disatukan. Pertimbangkan input berikut:

[['a','b','c'],['b','d','e'],['k'],['o','p'],['e','f'],['p','a'],['d','g']]

Setiap subsenarai mewakili komponen atau kumpulan elemen. Objektifnya adalah untuk menggabungkan senarai berdasarkan elemen dikongsi dan meneruskan proses penggabungan sehingga tiada lagi senarai berkongsi elemen.

Penyelesaian Menggunakan NetworkX

Penyelesaian yang sesuai memanfaatkan NetworkX perpustakaan, yang menyediakan alat yang cekap untuk mewakili dan memanipulasi graf. Dengan menukar senarai input kepada graf, di mana nod mewakili elemen dan tepi mewakili elemen dikongsi, kami boleh menggunakan algoritma untuk mengenal pasti komponen graf yang disambungkan.

Berikut ialah pelaksanaan Python menggunakan NetworkX:

<code class="python">import networkx as nx
from networkx.algorithms.components.connected import connected_components

def to_graph(l):
    G = nx.Graph()
    for part in l:
        # each sublist is a bunch of nodes
        G.add_nodes_from(part)
        # it also imlies a number of edges:
        G.add_edges_from(to_edges(part))
    return G

def to_edges(l):
    it = iter(l)
    last = next(it)

    for current in it:
        yield last, current
        last = current    

G = to_graph(l)
print(connected_components(G))</code>

Kod ini menukar senarai input kepada graf dan mengenal pasti komponen yang disambungkan, yang sepadan dengan senarai gabungan terakhir.

Kesimpulan

Dengan menggunakan NetworkX dan konsep teori graf, kami mencapai penyelesaian yang cekap untuk menggabungkan senarai berdasarkan elemen yang dikongsi, menghasilkan struktur disatukan yang diingini.

Atas ialah kandungan terperinci Bagaimana untuk Menggabungkan Senarai dengan Elemen Dikongsi Menggunakan NetworkX?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn