Bagaimana untuk Menggabungkan Senarai dengan Elemen Dikongsi Menggunakan NetworkX?

Mary-Kate Olsen
Lepaskan: 2024-10-21 17:13:02
asal
779 orang telah melayarinya

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']]
Salin selepas log masuk

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>
Salin selepas log masuk

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!

sumber:php
Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!