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!